Ядро & Оборудование
   3621

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

Здравствуйте, столкнулся с фризами при нагрузке IO. Решением было поменять scheduler по-умолчанию на bfq. Сейчас стоит
mq-deadline
, но он мне не подходит.

~ >>> uname --kernel-release                                                                                                            
5.4.0-1-MANJARO


Делал
scsi_mod.use_blk_mq=1
в /etc/default/grub

Так же
~ >>> sudo modprobe bfq                                                                                                                 
~ >>> echo "bfq" | sudo tee /sys/block/sda/queue/scheduler                                                                              
bfq


Да, действительно вывод
/sys/block/sda/queue/scheduler
показывал активность BFQ
~ >>> cat /sys/block/sda/queue/scheduler                                                                                                
mq-deadline kyber [bfq] none


Но это до перезагрузки. После перезагрузки всё сбрасывается обратно. Как это лечить?

7 комментариев

avatar
Делал

scsi_mod.use_blk_mq=1

в /etc/default/grub
И update-grub делали?
/etc/udev/rules.d/60-ioschedulers.rules
смотрели?
Последний раз редактировалось
+1
avatar
update-grub
да, делал

/etc/udev/rules.d/60-ioschedulers.rules


Добавил правило. Да, заработало!
~ >>> cat /sys/block/sda/queue/scheduler                                                                                                
mq-deadline kyber [bfq] none


Спасибо всем, кто откликнулся
0
avatar
/etc/udev/rules.d/60-scheduler.rules

# установка планировщика для SSD
ACTION==«add|change», KERNEL==«sd[a-z]», ATTR{queue/rotational}==«0», ATTR{queue/scheduler}=«kyber»

# установка планировщика bfq для вращабельных устройств
ACTION==«add|change», KERNEL==«sd[a-z]», ATTR{queue/rotational}==«1», ATTR{queue/scheduler}=«bfq-sq»

# установка планировщика для flash-накопителей
ACTION==«add|change», KERNEL==«sd[a-z]», ATTR{removable}==«1», ATTR{queue/scheduler}=«mq-deadline»
+1
avatar
а чем kyber хорош именно для ssd?
0
avatar
а чем kyber хорош именно для ssd?

Не знаю.Этот конфиг взял у тов.Morisson с форума арча, года два назад, когда купил ssd для ноута.
Тогда по этому поводу в wiki ничего не было.Сейчас спецом заглянул и имеем
/etc/udev/rules.d/60-ioschedulers.rules
# set scheduler for NVMe
ACTION=="add|change", KERNEL=="nvme[0-9]*", ATTR{queue/scheduler}="none"
# set scheduler for SSD and eMMC
ACTION=="add|change", KERNEL=="sd[a-z]|mmcblk[0-9]*", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="mq-deadline"
# set scheduler for rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="bfq"

У себя переделал.
0
avatar
KERNEL=="sd[a-z]"

Зачем Вы ищете устройства по имени? Не покрываются mmcblk*, nvme* и.т.д.
SUBSYSTEM=="block"

И все.
Последний раз редактировалось
0
avatar
а я всегда думал, что на nvme можно повесить только SSD, и, соответственно, там нужен какой-нибудь deadline...?

upd: не дочитал предыдущий коммент. Да, Вы абсолютно правы))
Последний раз редактировалось
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.