Fabio Checconi представил новый планировщик для ядра, основанный на CFQ, - Budget Fair Queueing или BFQ.
BFQ преобразует алгоритм планирования Round Robin, основанный на временных промежутках, так, что он ориентируется на количество дисковых секторов. Каждой задаче назначается т.н. бюджет секторов, который может изменяться в зависимости от поведения задачи. BFQ гарантирует, что дисковый траффик будет распределяться более честно между задачами, и снижает сложность времени запроса дисковых данных до O(1).
Jens Axboe, занимающийся, в частности, планировщиком CFQ в ядре, сообщил, что патчи в ближайшее время будут включены в ветку -mm, и стоит также подумать об объединении CFQ и BFQ.
Тесты показывают, что BFQ показывает стабильно лучший результат на чтении файлов, чем CFQ. Скорость чтения с BFQ была выше, чем с CFQ, и отклонение от среднего значения не превышало 3% против 28% у CFQ. В частности, с BFQ вещающий VLC видеосервер смог обслужить 24 параллельных потока без ощутимой потери пакетов, против 15 с CFQ.
Патчи
Результаты тестирования
BFQ Draft
>>> Подробности