Упреждающее планирование
Упреждающее планирование — это алгоритм планирования на жесткий диск ввода/вывода данных ( планирование ввода-вывода ). Он стремится повысить эффективность использования диска за счет «предвидения» будущих операций синхронного чтения.
Планирование ввода-вывода
[ редактировать ]«Обманчивое бездействие» — это ситуация, когда кажется, что процесс завершил чтение с диска, хотя на самом деле он обрабатывает данные при подготовке к следующей операции чтения. Это приведет к тому, что обычный планировщик ввода-вывода, сохраняющий работу , переключится на обслуживание ввода-вывода из несвязанного процесса. Эта ситуация вредна для пропускной способности синхронного чтения, поскольку она перерождается в рабочую нагрузку поиска. [1] Упреждающее планирование преодолевает обманчивое бездействие путем приостановки на короткое время (несколько миллисекунд) после операции чтения в ожидании следующих запросов на чтение поблизости. [2]
Упреждающее планирование приводит к значительному улучшению использования диска для некоторых рабочих нагрузок. [3] В некоторых ситуациях веб-сервер Apache может увеличить пропускную способность до 71% за счет использования упреждающего планирования. [4]
Упреждающий планировщик Linux может снизить производительность дисков, использующих очередь команд с тегами (TCQ), высокопроизводительные диски и аппаратные RAID- массивы. [5] Упреждающий планировщик (AS) был планировщиком ядра Linux по умолчанию между 2.6.0 и 2.6.18, к этому времени он был заменен планировщиком CFQ .
Начиная с версии ядра 2.6.33, упреждающий планировщик был удален из ядра Linux. [6] Причина в том, что, хотя и полезно, эффекты планировщика могут быть достигнуты за счет настроенного использования других планировщиков (в основном CFQ, который также можно настроить на бездействие с помощью настраиваемого параметра среза_idle ). [7] Поскольку упреждающий планировщик добавлял накладные расходы на обслуживание, но не улучшал покрытие рабочей нагрузки ядра Linux, он был сочтен избыточным.
См. также
[ редактировать ]- Планировщик сроков
- Нооп-планировщик
- CFQ Планировщик
- Собственная очередь команд (NCQ)
- Планирование (вычисления)
Ссылки
[ редактировать ]- ^ Айер, Ситарам (2001). Влияние обманного бездействия на дисковые планировщики (Диссертация). Университет Райса. hdl : 1911/17433 . Проверено 20 апреля 2010 г.
- ^ Мортон, Эндрю (23 января 2003 г.). «2.5.59-мм5» . linux-kernel, linux-mm (список рассылки). Архивировано из оригинала 15 июня 2007 года . Проверено 23 мая 2007 г.
- ^ Мортон, Эндрю (20 февраля 2003 г.). «Сравнительный анализ планировщика ввода-вывода» . linux-kernel (список рассылки). Архивировано из оригинала 2 июня 2007 года . Проверено 23 мая 2007 г.
- ^ Айер, Ситарам; Друшель, Питер (6 июня 2001 г.). «Упреждающее планирование: структура дискового планирования для преодоления обманного простоя при синхронном вводе-выводе» . 18-й симпозиум ACM по принципам работы операционных систем . Проверено 20 апреля 2010 г.
- ^ Пиггин, Ник (13 сентября 2003 г.). "as-iosched.txt" . Документация по ядру Linux . Проверено 20 апреля 2010 г.
- ^ «Linux 2 6 33 — новички в ядре Linux» .
- ^ «Документация ядра CFQ» .