The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Планировщики ввода/вывода в Linux (linux kernel io schedule optimization tune)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: linux, kernel, io, schedule, optimization, tune,  (найти похожие документы)
From: Santa Claus Date: Mon, 11 Jan 2006 14:31:37 +0000 (UTC) Subject: Планировщики ввода/вывода в Linux Оригинал: http://santa-claus-rpm.livejournal.com/2456.html Планировщики ввода/вывода в Linux © 2006 Santa Claus Примечание. Эта информация будет полезна при настройке производительности системы на ядре 2.6. Не слишком углубляясь в дебри ядра, скажем, что с т/з планирования все процессы в Linux подразделяются на: * I/O-зависимые * CPU-зависимые Первые слишком плотно работают с устройствами ввода/вывода, вторым требуется как можно больше процессорного времени. По другой, независимой от первой, классификации процессы также могут быть: * Интерактивными * Фоновыми и пакетными * Real-time Например, процесс СУБД является фоновым и I/O-зависимым. Поэтому важно понимать, что далее речь пойдет о планировании I/O, а не CPU. Итак, существует ровно четыре основных планировщика I/O: * CFQ - Completely Fair Queuing - полностью справедливая очередь * Deadline * NOOP * Anticipatory - упреждающий конвейер Чтобы узнать какие планировщики ввода/вывода зарегистрированы в системе, введите команду $ dmesg | grep schedule io scheduler noop registered io scheduler anticipatory registered io scheduler deadline registered io scheduler cfq registered (default) Чтобы выбрать планировщик, отличный от дефолтного добавьте параметр elevator=as | deadline | cfq | noop в строку kernel конфигурационного файла загрузчика GRUB (/boot/grub/grub.conf) или в строку "append=" для LILO. Все четыре конвейера являются встроенными и перекомпиляция ядра не потребуется. CFQ является планировщиком по-умолчанию (по крайней мере в Fedora). Поддерживает очередь ввода/вывода для каждого процесса и пытается распределить доступную полосу пропускания равномерно между всеми запросами. CFQ отлично подходит для многопроцессорных системы выше среднего уровня и для систем, которым требуется сбалансированная производительность подсистемы ввода/вывода между различными устройствами и контроллерами. Если несколько программ одновременно запросят доступ к диску, все программы получат ответ. Deadline использует алгоритм предельного срока для минимизации задержек ввода/вывода для данного запроса. Этот планировщик предоставляет поведение близкое к реальному времени и использует политику перебора (round robin), пытаясь быть справедливым по отношению к нескольким запросам, для предотвращения "голодания" процессов. Используя пять очередей ввода/вывода, планировщик активно переупорядочивает запросы для улучшения производительности. Другими словами, из очереди извлекается одна программа, которая и получает практически монопольный доступ к диску. Пока эта программа работают, все остальные ожидают в очереди. По истечению определенного времени, планировщик переводит эту программу в состояние ожидания и переключается на другую программу - следующую в очереди. Теперь вторая программа получается доминирующий доступ к диску. Потом третья, четвертая и т.д. Данный метод хорош для сервера баз данных, но не для десктопа. NOOP представляет собой простую очередь "Первый вошел - Первый вышел" (FIFO) и использует минимальное количество команд CPU на одну операцию ввода/вывода, выполняя простые операций объединения и сортировки. Подразумевается, что производительность системы ввода/вывода оптимизируется на уровне блочного устройства (память-диск) или при помощи интеллектуального HBA или внешнего контроллера. Что снимает нагрузку с процессора и обеспечивает адекватную производительность ввода/вывода для систем с интеллектуальным контроллером ввода/вывода, обладающим собственными возможностями по упорядочиванию запросов. Anticipatory (упреждающий конвейер) вводит управляемую задержку перед обработкой операции в попытке объединить и/или переупорядочить запросы, улучшая смежность и уменьшая количество операций перемещения по диску. Этот алгоритм предназначен для оптимизации систем с небольшой или медленной дисковой подсистемой. Одним из побочных эффектов этого планировщика может оказаться увеличенная задержка ввода/вывода. Из дизайна планировщика следует, что он лучше всего подойдет для клиентских систем и рабочих станций, для которых интерактивность работы имеет приоритет над задержками ввода/вывода. Планировщик CFQ обычно устанавливается по умолчанию, т.к. он предлагает наивысшую производительность для широкого круга приложений и конфигураций систем ввода/вывода. Выбор планировщика ввода/вывода Правильный выбор планировщика ввода/вывода состоит в том, чтобы проверить на практике и настроить вашу задачу для каждого из планировщиков, с перезагрузкой системы и выполнением замеров производительности. Поэтому не существует единого или правильного ответа на вопрос "какой планировщик ввода/вывода является лучшим". Полезные ссылки * Выбор планировщика ввода/вывода в Red Hat Enterprise Linux 4 и ядре версии 2.6

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Спонсоры:
Слёрм
Inferno Solutions
Hosting by Ihor
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2019 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру