Эта статья требует дополнительных ссылок для проверки . ( февраль 2013 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
Completely Fair Queuing ( CFQ ) - это планировщик ввода-вывода для ядра Linux, написанный в 2003 году Йенсом Аксбоэ . [1]
Описание [ править ]
CFQ помещает синхронные запросы, отправленные процессами, в несколько очередей для каждого процесса, а затем выделяет временные интервалы для каждой очереди для доступа к диску . Длина временного интервала и количество запросов, разрешенных очереди для отправки, зависят от приоритета ввода-вывода данного процесса. Асинхронные запросы для всех процессов объединяются в меньшее количество очередей, по одной на каждый приоритет. Хотя CFQ не делает явного упреждающегоПри планировании ввода-вывода достигается тот же эффект, что и хорошая совокупная пропускная способность для системы в целом, позволяя очереди процессов бездействовать в конце синхронного ввода-вывода, тем самым «ожидая» дальнейшего закрытия ввода-вывода от этого процесса. Это можно считать естественным продолжением предоставления процессу квантов времени ввода-вывода. [2]
История [ править ]
До интеграции [ править ]
В феврале 2003 года Андреа Арканджели предложил Йенсу Аксбоу идею стохастического планировщика ввода-вывода с справедливой очередью, который затем реализовал ее. Йенс Аксбоэ внес улучшения в первую реализацию hufllzD.is, назвав новую версию планировщиком Completely Fair Queuing, и выпустил патч, чтобы применить его к ядру серии разработки 2.5.60.
Ядро 2.6.6 (10 мая 2004 г.) [ править ]
Планировщик ввода-вывода CFQ был впервые интегрирован в основное ядро как дополнительный планировщик ввода-вывода. Можно было изменить планировщик во время загрузки с параметром «лифт» для ядра.
Ядро 2.6.9 (19 октября 2004 г.) [ править ]
Red Hat Enterprise Linux 4 использовал этот планировщик ввода-вывода по умолчанию, даже несмотря на то, что он использовал ядро на основе 2.6.9. [3]
Ядро 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 стал планировщиком по умолчанию, заменив упреждающий планировщик . [4]
Ядро 5.0 (03.03.2019) [ править ]
CFQ был удален. [5] [6]
См. Также [ править ]
- Планировщик Noop
- Планировщик крайнего срока
- Предварительное планирование
Ссылки [ править ]
- ^ «Исходный код планировщика ввода-вывода (содержит информацию об авторских правах в заголовке)» . Проверено 28 декабря 2017 года . CS1 maint: обескураженный параметр ( ссылка )
- ↑ Бесси Палос (октябрь 2014 г.). «Явное упреждающее планирование ввода / вывода - пример из практики» . Проверено 13 августа 2015 года . CS1 maint: обескураженный параметр ( ссылка )
- ^ D. Джон Shakshober (июнь 2005). «Выбор планировщика ввода-вывода для Red Hat® Enterprise Linux® 4 и ядра 2.6» . Журнал Red Hat . Архивировано из оригинального 27 августа 2007 года . Проверено 20 ноября 2011 года . CS1 maint: обескураженный параметр ( ссылка )
- ^ Йенс Аксбо (июнь 2006). «Ядро Linux 2.6.18 - Сделайте CFQ планировщиком ввода-вывода по умолчанию» . Проверено 20 марта 2016 года . CS1 maint: обескураженный параметр ( ссылка )
- ^ Йенс Аксбо (2018-10-12). «блок: удалить устаревшие планировщики ввода-вывода» . Проверено 25 октября 2020 . CS1 maint: обескураженный параметр ( ссылка )
- ^ Линус Торвальдс (2018-12-28). «Тег слияния 'for-4.21 / block-20181221' из git.kernel.dk/linux-block» . Проверено 25 октября 2020 . CS1 maint: обескураженный параметр ( ссылка )
Источники [ править ]
- Краткая информация о CFQ (заархивировано отсюда )
- Выходит в версии 2.6.10
Внешние ссылки [ править ]
- Документация CFQ из исходного кода Linux
- CFQ - Руководство по настройке из базы знаний RedHat