Абсолютно справедливая очередь
Эта статья нуждается в дополнительных цитатах для проверки . ( февраль 2013 г. ) |
Completely Fair Queuing ( CFQ ) — это планировщик ввода-вывода для ядра Linux , написанный в 2003 году Йенсом Эксбо . [ 1 ]
Описание
[ редактировать ]CFQ помещает синхронные запросы, отправленные процессами, в несколько очередей для каждого процесса , а затем выделяет интервалы времени для каждой из очередей для доступа к диску . Длина временного интервала и количество запросов, которые может отправить очередь, зависят от приоритета ввода-вывода данного процесса. Асинхронные запросы для всех процессов группируются в меньшее количество очередей, по одной на каждый приоритет. Хотя CFQ не выполняет явного упреждающего планирования ввода-вывода, он достигает того же эффекта, обеспечивая хорошую совокупную пропускную способность для системы в целом, позволяя очереди процессов простаивать в конце синхронного ввода-вывода, тем самым «предвидя» дальнейшее закрытие. Ввод-вывод из этого процесса. Это можно считать естественным расширением предоставления процессу временных интервалов ввода-вывода.
История
[ редактировать ]До интеграции
[ редактировать ]В феврале 2003 года Андреа Арканджели предложил свою идею планировщика ввода-вывода стохастической честной очереди Йенсу Аксбо, который затем реализовал ее. Йенс Аксбо внес улучшения в свою первую реализацию, назвав новую версию планировщиком Completely Fair Queuing, и выпустил патч для применения ее к ядру серии разработки 2.5.60.
Ядро 2.6.6 (10 мая 2004 г.)
[ редактировать ]Планировщик ввода-вывода CFQ был впервые интегрирован в основное ядро в качестве дополнительного планировщика ввода-вывода. Можно было изменить планировщик во время загрузки с помощью параметра «Elevator» на ядро.
Ядро 2.6.9 (19 октября 2004 г.)
[ редактировать ]Red Hat Enterprise Linux 4 использовал этот планировщик ввода-вывода по умолчанию, хотя в нем использовалось ядро на основе версии 2.6.9. [ 2 ]
Ядро 2.6.10 (24 декабря 2004 г.)
[ редактировать ]Вторая версия планировщика CFQ, получившая название CFQv2, включена в версию 2.6.10. Улучшения включают лучшее реагирование и устранение некоторых проблем с голоданием, которые присутствовали в более ранней версии. Планировщик теперь также можно переключать во время выполнения, изменяя переменную /sys/block/<block_device>/queue/scheduler в файловой системе sysfs .
Ядро 2.6.13 (27 июня 2005 г.)
[ редактировать ]Планировщик CFQ перешел на новую структуру с разделением по времени, получившую название CFQv3. Помимо прочего, он реализует ioprio_get(2) и ioprio_set(2) , которые позволяют пользователю устанавливать приоритеты ввода-вывода для каждого процесса, обычно с помощью команды ionice(1) (хотя использование nice(1) также несколько изменяет приоритеты ввода-вывода)
Ядро 2.6.18 (20 сентября 2006 г.)
[ редактировать ]CFQ стал планировщиком по умолчанию, заменив упреждающий планировщик . [ 3 ]
Ядро 5.0 (03.03.2019)
[ редактировать ]CFQ удален. [ 4 ] [ 5 ] CFQ превратился в систему бюджетной справедливой очереди (BFQ) . [ 6 ] [ 7 ]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Исходный код планировщика ввода-вывода (содержит информацию об авторских правах в заголовке)» . Проверено 28 декабря 2017 г.
- ^ Д. Джон Шакшобер (июнь 2005 г.). «Выбор планировщика ввода-вывода для Red Hat® Enterprise Linux® 4 и ядра 2.6» . Журнал «Красная шляпа» . Архивировано из оригинала 27 августа 2007 года . Проверено 20 ноября 2011 г.
- ^ Йенс Аксбо (июнь 2006 г.). «Ядро Linux 2.6.18 — сделать CFQ планировщиком ввода-вывода по умолчанию» . Проверено 20 марта 2016 г.
- ^ Йенс Аксбо (12 октября 2018 г.). «блокировать: удалить устаревшие планировщики ввода-вывода» . Проверено 25 октября 2020 г.
- ^ Линус Торвальдс (28 декабря 2018 г.). «Объединить тег 'for-4.21/block-20181221' из git.kernel.dk/linux-block» . Проверено 25 октября 2020 г.
- ^ «Планировщик очереди ввода-вывода Budget Fair» .
- ^ «Планировщик ввода-вывода BFQ в очереди для Linux 4.12 — Phoronix» . www.phoronix.com .
Источники
[ редактировать ]Внешние ссылки
[ редактировать ]- Документация CFQ из исходного кода Linux
- CFQ — Руководство по настройке из базы знаний RedHat.