На днях наткнулся на описание нового планировщика для ядра Linux – BFQ scheduler.
Планировщик BFQ (Budget Fair Queueing I/O Scheduler) создан как замена CFQ (и основан на его коде), основная мысль – более честное разделение I\O между процессами.
Он существует пока в beta-варианте и в официальную поставку ядра не включен. Однако, патч вполне стабилен и лично у меня никаких проблем не вызвал.
Работает планировщик отлично – тормоза GUI во время активной работы с диском фоновых процессов (например, загрузки виртуальной машины или обновления дерева portage) просто как рукой сняло.
Патчи можно взять здесь. Последняя поддерживаемая версия ядра – 2.6.30 (на beta-ядрах не работает, можно не тратить время).
Под катом – патчинг и установка для тех, кому интересно.
- Скачиваем патчи с http://feanor.sssup.it/~fabio/linux/bfq/patches/
- Переходим в /usr/src/linux
- Патчим: patch -p1 /path/to/patch. Патчить последовательно, с 00 до 02. Все патчи обязательны.
- make menuconfig
- В разделе Block layer -> I\O schedulers ставим BFQ=m, сохраняемся, выходим.
- make modules
- make modules_install
- modprobe bfq-iosched
- Проверяем, загрузился ли модуль: cat /sys/block/<HDD>/queue/scheduler, должно быт что-то вроде no-op [cfq] bfq
- Включаем: echo «bfq» > /sys/block/<HDD>/queue/scheduler
- Снова проверяем, изменился ли планировщик.
- Радуемся увеличению производительности.
чёт инфы мало по планировщику