Вы не можете выбрать планировщик CFQ в Kubuntu 19.04, так как он был удален из ядра 5.0. В моем случае мне нужен CFQ, потому что он дает наилучшую производительность с моим вращающимся жестким диском при запуске виртуальной машины с Windows 10 в качестве гостевой SO, другие планировщики делают систему непригодной для использования. Kubuntu 19.04 в установке по умолчанию предлагает только 2 лифта mq-deadline и ни один из них в моем случае не обеспечивает производительность намного хуже, чем 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 trigger
и изменения проверяются с помощью
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
решение1
В зависимости от версии ядра CFQ может отсутствовать. Он был удален в версии ядра 5.0. Этосвязанная группа коммитов.
решение2
Ubuntu 19.04 использует ядро 5.0, поэтому CFQ и Deadline больше не доступны.
Для большинства рабочих нагрузок, даже на HDD, использование планировщика mq-deadline так же эффективно, как и использование любого из старых планировщиков. Только для рабочих нагрузок с только последовательными чтениями/записями на диске, без каких-либо других помех, старые планировщики быстрее.
решение3
На устаревшем ноутбуке с обычным старым вращающимся жестким диском 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 mass storage.
Как говорит ОП, переход на bfq решает проблему задержек.
Марко Гамберони