Вы не можете выбрать планировщик CFQ в Kubuntu 19.04, так как он был удален из ядра 5.0. В моем случае мне нужен CFQ, потому что он дает лучшую производительность с моим вращающимся жестким диском при запуске виртуальной машины с Windows 10 в качестве гостевой S.O, другие планировщики делают систему непригодной для использования. Kubuntu 19.04 в установке по умолчанию предлагает только 2 лифта mq-дедлайна и ни один, который в моем случае предлагает производительность намного хуже, чем CFQ.
sudo cat/sys/block/sda/queue/scheduler
mq-deadline none
Только мне нужно попробовать с 2 другими планировщиками, которые не отображаются в установке по умолчанию, это BFQ и Kyber.
Далее я опишу, как включить модули BFQ и Kyber
1) Сначала убедитесь, что модули существуют в системе с помощью следующих команд:
sudo modprobe bfq
sudo modprobe kyber-iosched
если ошибки не было, вы можете проверить, что модули загружены с помощью команды
sudo cat/sys/block/sda/queue/scheduler
, которая должна вернуть
mq-deadline [bfq] kyber none
2) заставить эти модули загружаться при запуске системы:
sudo -i
echo kyber-iosched > /etc/modules-load.d/kyber-oisched.conf
echo bfq > /etc/modules-load.d/bfq.conf
3) Следующий шаг - сообщить системе, какой планировщик использовать, затем создается файл, если он это делает не существует:
/etc/udev/rules.d/60-scheduler.rules
со следующими строками
# set cfq scheduler
ACTION=="add|change",KERNEL=="sd[a-z]",ATTR{queue/rotational}=="1",ATTR{queue/scheduler}="bfq"
ACTION=="add|change",KERNEL=="sr[0-9]",ATTR{queue/rotational}=="1",ATTR{queue/scheduler}="bfq"
, если вместо BFQ вы хотите попробовать kyber, замените последнее слово в строке, где написано "bfq" на "kyber"
4) заставьте систему распознавать изменения
sudo udevadm control --reload; триггер sudo udevadm
и изменения проверяются с помощью
sudo cat/sys/block/sda/queue/scheduler
mq-deadline kyber [bfq] none
Готово.
Источники:
https://community.chakralinux.org/t/how-to-enable-the-bfq-io-scheduler-on-kernel-4-12/6418
https://unix.stackexchange.com/questions/375600/how-to-enable-and-use-the-bfq-scheduler#376136
В зависимости от версии вашего ядра CFQ может отсутствовать. Он был удален с версии 5.0. Это связанная группа коммитов .
Ubuntu 19.04 использует ядро 5.0, поэтому CFQ и Deadline больше не доступны.
Для большинства рабочих нагрузок даже на жестких дисках использование планировщика mq-deadline столь же эффективно, как и использование любого из старых планировщиков. Только для рабочих нагрузок только с последовательным чтением / записью на диск без каких-либо других помех старые планировщики работают быстрее.
На ноутбуке прежней версии, с простым вращательным жестким диском, BFQ является существенным, чтобы иметь быстро реагирующую систему, в то время как некоторая другая задача получает доступ к диску в фоновом режиме. Ранее Ubuntu универсальное ядро использовала cfq:
$ zgrep IOSCHED /boot/config-*-generic
...
/boot/config-4.13.0-36-generic:CONFIG_DEFAULT_IOSCHED="cfq"
после обновления, запас ядро Ubuntu имеет удаленный CFQ (см. выше), и я нашел это значение по умолчанию:
$ cat /sys/block/sda/queue/scheduler
[mq-deadline] none
недопустимый из-за экстремальной задержки в присутствии фоновой активности диска. Я предполагаю, что это - намного меньше проблемы на современных аппаратных средствах с массовым хранением SDD/NVMe.
, Поскольку OP заявляет, переключение на bfq решает проблему задержки.
Marco Gamberoni