No estoy en Ubuntu, pero lo que hice en Fedora puede ayudarte.
BFQ es un planificador blk-mq (Mecanismo de colas de bloque de E / S de múltiples colas), por lo que debe habilitar blk-mq en el momento del arranque, editar su archivo / etc / default / grub y agregarlo scsi_mod.use_blk_mq=1
a su GRUB_CMDLINE_LINUX
, este es mi archivo grub, como un ejemplo:
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"
Después de eso, debes actualizar tu grub. En Fedora tenemos que usar sudo grub2-mkconfig -o /path/to/grub.cfg
, que varía según el método de arranque . En Ubuntu, simplemente puede ejecutar:
sudo update-grub
Reinicia, y si obtienes esto:
cat /sys/block/sda/queue/scheduler
[mq-deadline] none
Probablemente su núcleo fue compilado con BFQ como módulo , y este puede ser el caso también para Kyber.
sudo modprobe bfq
sudo cat /sys/block/sda/queue/scheduler
[mq-deadline] bfq none
Puede agregarlo en el momento del arranque agregando un /etc/modules-load.d/bfq.conf
archivo que contenga bfq
.
Es importante tener en cuenta que habilitar blk_mq hace que sea imposible usar planificadores que no sean blk_mq, por lo que perderá noop cfq y la fecha límite no mq
Aparentemente, el sistema de programación blk_mq no admite banderas de elevadores en grub, en su lugar se pueden usar reglas udev, con la ventaja de ofrecer un control más detallado.
Crea /etc/udev/rules.d/60-scheduler.rules
si no existía y agrega:
ACTION=="add|change", KERNEL=="sd*[!0-9]|sr*", ATTR{queue/scheduler}="bfq"
Como se ha señalado aquí , si es necesario se puede distinguir entre rotacionales (HDD) y dispositivos que no son de rotación (SSD) en reglas udev con el atributo ATTR{queue/rotational}
. Tenga en cuenta que Paolo Valente, BFQ desarrollador, señaló en LinuxCon Europa que BFQ puede ser una mejor opción que el noop
o deadline
los programadores en términos de garantías de baja latencia, lo que hace un buen consejo para utilizarlo para los SSD también.
Comparación de Paolo: https://www.youtube.com/watch?v=1cjZeaCXIyM&feature=youtu.be
Guárdelo, vuelva a cargar y dispare udev rules
:
sudo udevadm control --reload
sudo udevadm trigger