Как включить и использовать планировщик BFQ?

Я только что установил версию ядра Linux 4.12 на Ubuntu 17.04, используя ukuu (утилита обновления ядра Ubuntu https://doc.ubuntu-fr.org/ubuntu_kernel_upgrade_utility ).

Дело в том, что когда я проверяю доступные планировщики ввода-вывода, я не могу найти BFQ или планировщик ввода-вывода Kyber:

cat /sys/class/block/sda/queue/scheduler > noop deadline [cfq] 

Итак, как использовать один из новых планировщиков в этой версии Linux?

One Solution collect form web for “Как включить и использовать планировщик BFQ?”

Я не в Ubuntu, но то, что я сделал в Fedora, может вам помочь.

BFQ – это планировщик blk-mq (многопользовательский блок IO Queuing Mechanism), поэтому вам нужно включить blk-mq во время загрузки, отредактировать файл / etc / default / grub и добавить scsi_mod.use_blk_mq=1 в ваш GRUB_CMDLINE_LINUX , этот это мой файл grub, например:

 GRUB_TIMEOUT=3 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=false GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="quiet vt.global_cursor_default=0 scsi_mod.use_blk_mq=1 GRUB_DISABLE_RECOVERY="true" 

После этого вы должны обновить свою личинку, если я не ошибаюсь, в Ubuntu это:

 sudo update-grub 

Перезагрузитесь, и если вы получите это:

 cat /sys/block/sda/queue/scheduler [mq-deadline] none 

Возможно, ваше ядро ​​было скомпилировано с BFQ в качестве модуля , и это может иметь место и для Kyber.

 sudo modprobe bfq sudo cat /sys/block/sda/queue/scheduler [mq-deadline] bfq none 

Вы можете добавить его во время загрузки, добавив файл /etc/modules-load.d/bfq.conf содержащий bfq .

Важно отметить, что включение blk_mq не позволяет использовать планировщики non blk_mq, поэтому вы потеряете noop cfq и крайний срок не mq

По-видимому, система планирования blk_mq не поддерживает флаги лифта в grub, вместо этого могут использоваться правила udev, с бонусом, предлагающим более зернистый контроль.

Создайте /etc/udev/rules.d/60-scheduler.rules если он не существует, и добавьте:

 ACTION=="add|change", KERNEL=="sd[az]", ATTR{queue/scheduler}="bfq" 

Сохраните его и перезагрузите и udev rules :

 sudo udevadm control --reload sudo udevadm trigger 
  • Задача Cron выполняется каждый час, а не каждые 3 часа
  • Как preemption работает в Linux, когда программа имеет таймер менее 4 мс?
  • Есть ли удобный инструмент командной строки для управления заданиями Cron?
  • Запуск процесса в заданном временном окне
  • Как запланировать что-то запускать один раз с помощью anacron?
  • Какой самый простой способ настроить двухчасовую тревогу?
  • Cronjob для запуска, а затем завершения
  • Zsh очистить командную строку от вызова zsh / sched
  • Сценарий Bash при запуске? (Linux)
  • что такое глобальная политика планирования Linux?
  • Изменение планировщика дисков на лету
  • Linux и Unix - лучшая ОС в мире.