Как включить и использовать планировщик 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 
  • SFTP, создающий новый каталог
  • Исключая конкретную дату и время в cronjob
  • Как я могу запустить две команды подряд из cron?
  • что такое глобальная политика планирования Linux?
  • Как проверить текущую политику планирования во встроенной Linux?
  • Планирование процесса Linux - Cap / Weight?
  • Zsh очистить командную строку от вызова zsh / sched
  • Процесс Thread в linux
  • Изменить планировщик Ubuntu 1604 IO на AWS?
  • Каков алгоритм планирования собственной библиотеки потоков POSIX?
  • Как я могу автоматизировать задачу на определенном событии?
  • как остановить потоки ядра, вытесняющие процессы пользовательского пространства в реальном времени?
  • Interesting Posts

    Несколько команд grep с сортировкой

    Как средняя длина очереди ожидания равна 1, а средняя нагрузка почти равна нулю

    Bash удаляет все символы после шаблона с помощью awk

    Конфигурация постоянных grub 2 на дебианской установке 8 "jessie" на Asus X205TA

    Что такое позиция Debian относительно GCJ и OpenJDK?

    Что именно происходит, когда встроенная команда запускается в оболочке?

    Выполнять поиск по двум спискам

    Может ли 32-разрядные приложения на 64-битном ядре использовать всю память?

    Как получить последние N команд из истории?

    Нужна ли мне новая зона для каждого домена, который у меня есть на моем сервере?

    Какие отличные исходные ресурсы Emacs?

    Кто отвечает за ядро ​​Linux?

    Doubleboot Debian и Windows загружают Windows прямо сейчас

    Может ли GDB декодировать ядро, если он был передан по трубопроводу?

    Как я могу автоматически отключить встроенную клавиатуру моего ноутбука на X.org?

    Linux и Unix - лучшая ОС в мире.