Планировщик ввода вывода linux

Планировщик ввода/вывода

Планировщик ввода-вывода (I/O) — это компонент ядра, который определяет, в каком порядке операции блочного ввода-вывода передаются на устройства хранения (HDD/SSD/NVME). Основной целью планировщика ввода-вывода является оптимизация обработки запросов к диску для повышения производительности и пропускной способности ввода-вывода. Связано это с тем, что когда в системе запущено большое количество процессов, выполняющих запросы ввода-вывода к различным частям хранилища, то эти процессы могут создавать множественные операции ввода-вывода, в результате чего образуется очередь запросов.

В РЕД ОС используются следующие планировщики:

  • mq-deadline — реализация планировщика deadline с использованием blk-mq. Этот планировщик подходит для большинства случаев, но особенно для тех, в которых операции записи в основном асинхронны. Планировщик mq-deadline сортирует запросы ввода-вывода в очереди на чтение или запись, а затем планирует их выполнение в возрастающем порядке адресации логических блоков (LBA).
  • kyber — планировщик, основанный на методах активного управления очередями, используемых для сетевой маршрутизации. Реализация основана на «токенах», которые служат механизмом ограничения запросов. Используется две очереди запросов — на запись и на чтение. kyber отдает приоритет запросам на чтение перед запросами на запись. Реализация алгоритма относительно проста и считается эффективной для NVME, SSD или других устройств с низкой задержкой.
  • bfq (Budget Fair Queuing) — основан на алгоритме от CFQ, но содержит улучшения. В конфигурации по умолчанию он больше нацелен на обеспечение минимальной задержки, а не на достижение максимальной пропускной способности. Этот планировщик обладает относительно высокими расходами на операцию, поэтому он не идеален для устройств с медленными процессорами или устройствами ввода-вывода с высокой пропускной способностью.
  • none – планировщик ввода-вывода без операций с несколькими очередями. Не переупорядочивает запросы и имеет минимальные расходы. Идеально подходит для быстрых устройств произвольного ввода-вывода, таких как SSD или NVME.

Устаревшими планировщиками ввода-вывода считаются: noop, CFQ, Deedline.

В зависимости от задачи, которую выполняет используемая система, рассмотрены следующие рекомендации по выбору планировщиков.

Вариант использования

Традиционный жесткий диск с интерфейсом SCSI

Читайте также:  Расширение файла файл linux

Рекомендуется mq-deadline или bfq

Высокопроизводительный SSD или система с привязкой к ЦП с быстрым хранилищем

Рекомендуется none, особенно при запуске корпоративных приложений. В качестве альтернативы можно использовать kyber

Настольные системы или интерактивные задачи

Виртуальные гостевые системы

Рекомендуется mq-deadline. С адаптером главной шины (HBA), поддерживающим работу с несколькими очередями, рекомендуется использовать noop/none

РЕД ОС по умолчанию использует планировщик BFQ. Для проверки можно вывести содержимое файла /sys/block/sd X /queue/scheduler:

cat /sys/block/sdX/queue/scheduler mq-deadline kyber [bfq] none

Используемый планировщик выделен квадратными скобками.

Изменение планировщика ввода-вывода

Изменить используемый планировщик без необходимости перезагрузки можно командой:

echo none > /sys/block/sdX/queue/scheduler

где X — буква физического накопителя.

Данная настройка действует только до первой перезагрузки ОС.

Для постоянной настройки необходимо создать правило UDEV.

Создайте файл /etc/udev/rules.d/60-schedulerset.rules и запишите в него следующие строки:

  • ATTR – параметр определяет имя планировщика;
  • ATTR=0 – признак планировщика для типов дисков — SSD и NVME;
  • ATTR=1 – признак планировщика для типа дисков — HDD (магнитные диски).

Изменения вступят в силу после перезагрузки ОС. Чтобы проверить назначенное правило, выполните команду:

cat /sys/block/sdX/queue/scheduler

где X — буква физического накопителя.

cat /sys/block/sdb/queue/scheduler [none] mq-deadline kyber bfq

Дата последнего изменения: 19.01.2023

Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.

Источник

Как и когда менять планировщик ввода-вывода в Linux

Favorite

Добавить в избранное

Главное меню » Linux » Как и когда менять планировщик ввода-вывода в Linux

Как и когда менять планировщик ввода-вывода в Linux

П ланировщик ввода/вывода — увлекательная тема; Заранее разберемся, как и когда настраивать планировщик ввода-вывода; давайте получим более глубокое понимание того, что делают планировщики ввода-вывода. Планировщик ввода-вывода Linux управляет тем, как ядро ​​фиксирует, читает и записывает на диск. Руководители имели возможность настраивать систему планирования примерно с версии ядра 2.6, что позволяло им адаптировать свои фреймворки к своим точным требованиям. Долгое время считалось, что доступность диска является относительно медленным средством доступа к данным. Несмотря на растущее распространение флэш-памяти и твердотельного пространства, получение данных с диска происходит медленнее, чем сбор информации из ОЗУ. Это особенно актуально, если каркас основан на вращающихся дисках.

Зачем использовать планировщик:

Так и есть, поскольку стандартные вращающиеся диски записывают информацию в зависимости от места на вращающемся диске. При доступе к данным с вращающегося диска фактический привод должен повернуть пластины в определенное положение, чтобы можно было прочитать информацию. Это называется «поиском», потому что это может занять гораздо больше времени с точки зрения вычислений. Планировщики ввода-вывода призваны помочь вам максимально эффективно использовать права доступа к диску. Мы делали то же самое, комбинируя транзакции ввода-вывода и отправляя их в соседние места на диске. Приводу даже не нужно так много «искать», когда запросы группируются в смежных частях диска, что улучшает среднее время отклика для операций с диском. В текущих архитектурах Linux доступно множество планировщиков ввода-вывода. У любого из них есть своя система для организации запросов доступа к диску.

Читайте также:  1с под linux ubuntu

Типы планировщиков:

Кажется, есть 3 типа планировщиков на выбор, каждый из которых имеет свой набор преимуществ в операционной системе Linux. Итак, вот список и объяснение каждого планировщика:

  • CFQ (cfq): стандартный планировщик для многих дистрибутивов Linux; он объединяет одновременные запросы, сделанные операциями, в серию пулов для каждого процесса перед выделением временных интервалов для использования диска для каждой очереди.
  • Планировщик Noop (noop): это самый простой планировщик ввода-вывода для ядра Linux, основанный на принципе пула FIFO. Этот планировщик хорошо работает с твердотельными накопителями.
  • Планировщик крайнего срока (deadline): этот планировщик пытается обеспечить период начала обслуживания запроса.

Проверить текущий планировщик:

Прежде чем двигаться дальше, вы должны знать о планировщике ввода-вывода, настроенном в вашей текущей системе Linux. Во время реализации мы использовали систему Ubuntu 20.04 Linux, поэтому наш планировщик будет. Возможно, в вашей системе Linux может быть настроен другой планировщик ввода-вывода. Итак, войдите в свою текущую систему Linux, чтобы попробовать ее проверить. Теперь запустите оболочку терминала, используя простую комбинацию клавиш «Ctrl+Alt+T». Вы можете попробовать открыть оболочку терминала, используя область панели действий на рабочем столе Linux. Теперь терминал командной оболочки открыт, мы можем приступить к работе над ним. Прежде всего, мы должны войти в систему как пользователь sudo из терминала, чтобы работать эффективно и без перебоев. Итак, введите команду «su» в терминале для входа в систему. Она попросит вас ввести пароль вашей учетной записи sudo для входа с нее.

Теперь пора проверить и определить планировщик ввода-вывода в нашей системе Linux. Как вы знаете, в настоящее время мы работаем над системой Ubuntu 20.04 Linux, чтобы соответствовать ей, и мы должны проверить это, прочитав файл планировщика по его пути. Итак, мы должны опробовать приведенную ниже инструкцию cat в терминале оболочки вместе с указанием местоположения файла по пути и нажать кнопку «Enter» на пишущей машинке вашего компьютера.

# cat /sys/block/sda/queue/scheduler

Вы должны прояснить, что планировщики ввода-вывода с несколькими очередями — это отдельные планировщики ввода-вывода, предлагаемые в Ubuntu Eoan Ermine 19.10, а также стремительно.

Читайте также:  Контроль оборотов кулера linux

Измените планировщик ввода-вывода:

Если пользователь системы Linux хочет изменить свой планировщик ввода-вывода на «Kyber», он должен сначала установить пакет «kyber» в свою систему Linux, выполнив два следующих шага. Необходимо выполнить приведенную ниже команду sudo с ключевым словом «modprobe» с именем планировщика «kyber-iosched».

# sudo modprobe kyber-iosched

Второй шаг — запустить ту же команду «cat», упомянутую в одной из вышеперечисленных команд, чтобы установить ее.

# cat /sys/block/sda/queue/scheduler

Теперь «kyber» успешно настроен. Теперь вы можете включить «kyber», используя приведенную ниже команду планировщика «echo» вместе с ключевыми словами «sudo» и «tee», к которым привязан путь к планировщику. Выходное изображение представляет включенный планировщик «kyber».

# echo “kyber” | sudo tee /sys/block/sda/queue/scheduler

Результат ниже показывает, что «kyber» установлен по умолчанию.

# cat /sys/block/sda/queue/scheduler

Чтобы изменить планировщик на планировщик «bfq», установите его с помощью следующей команды.

Теперь запустите ту же команду «cat».

# cat /sys/block/sda/queue/scheduler

Теперь, когда «bfq» установлен, включите его с помощью той же команды echo.

# echo “bfq” | sudo tee /sys/block/sda/queue/scheduler

Проверьте планировщик по умолчанию «bfq» с помощью команды cat.

# cat /sys/block/sda/queue/scheduler

Заключение:

В этой обучающей статье описан простой способ изменить планировщик ввода-вывода с помощью двух разных планировщиков. Мы обсудили, почему система хочет изменить свой планировщик, надеясь, что это сработает для вас.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Оцените статью
Adblock
detector