СРАВНЕНИЕ ПЛАНИРОВЩИКОВ ВВОДА-ВЫВОДА LINUX (MQ-DEADLINE, BFQ, KYBER, NONE) ДЛЯ РАЗНЫХ ТИПОВ НАКОПИТЕЛЕЙ (SATA SSD, NVMe, HDD)

СРАВНЕНИЕ ПЛАНИРОВЩИКОВ ВВОДА-ВЫВОДА LINUX (MQ-DEADLINE, BFQ, KYBER, NONE) ДЛЯ РАЗНЫХ ТИПОВ НАКОПИТЕЛЕЙ (SATA SSD, NVMe, HDD)

Авторы публикации

Рубрика

Информационные технологии

Просмотры

41

Журнал

Журнал «Научный лидер» выпуск # 25 (278), Июнь ‘26

Поделиться

В статье экспериментально сравниваются планировщики ввода-вывода Linux (mq-deadline, BFQ, Kyber, none) на накопителях HDD, SATA SSD и NVMe. BFQ оптимален для HDD, mq-deadline — для SATA SSD, а none — для NVMe. Предложены практические рекомендации для серверных и встраиваемых систем.

Введение

Современные Linux-системы сталкиваются с выбором планировщика ввода-вывода (I/O scheduler) для NVMe-накопителей, что может ухудшить производительность из-за недостатка систематических данных. Цель работы — сравнить планировщики mq-deadline, BFQ, Kyber и none на SATA SSD, NVMe и HDD по метрикам пропускной способности и латентности. Результаты помогут оптимизировать выбор планировщика для различных типов накопителей и сценариев нагрузки, что будет полезно как для пользователей, так и для разработчиков ядра Linux.

Обзор планировщиков

Сравнительный анализ алгоритмов mq-deadline, BFQ, Kyber и none демонстрирует их различные подходы к планированию запросов. Mq-deadline использует двухочередную модель (чтение/запись), балансируя между пропускной способностью и временем ожидания при смешанной нагрузке. BFQ обеспечивает справедливое распределение пропускной способности, эмулируя диск с постоянной скоростью, однако требует сложной настройки и избыточен для простых сценариев [2]. Kyber адаптивно управляет задержками, изменяя глубину очереди для минимизации латентности, обеспечивая стабильность при умеренных нагрузках, но уступает при пиковых. None — минимальная обёртка, передающая запросы напрямую драйверу, что позволяет оценить накладные расходы ядра и эффективность NVMe-устройств без вмешательства планировщика [1].

Методика эксперимента

Экспериментальный стенд построен на серверной платформе с контроллером SATA/NVMe. Использованы три накопителя: HDD Seagate BarraCuda (1 Тбайт, SATA III), SATA SSD Samsung 870 EVO и NVMe Samsung 980 Pro (PCIe 4.0 x4), что позволило охватить различные задержки и пропускную способность.

Программное обеспечение — Ubuntu Server 21.04 с ядром Linux 5.15, доступны четыре планировщика: mq-deadline, BFQ, Kyber, none. Фоновая активность минимизирована, мониторинг через изолированный SSH-терминал.

Нагрузка генерировалась инструментом FIO с параметром direct=1 (без кэширования). Фиксировались пропускная способность (MB/s) и средняя задержка (мс). Сценарии: последовательные операции (блок 1 МБ) для оценки максимальной пропускной способности и случайный доступ (блок 4 КБ) для эмуляции многозадачной нагрузки.

Результаты по устройствам

Итоги тестирования HDD и SATA SSD представлены в таблицах 1 и 2.

Таблица 1.

Результаты тестирования планировщиков на HDD

Планировщик

Пропускная способность (MB/s)

Средняя задержка (мс)

IOPS

mq-deadline

48.2

12.4

12 340

BFQ

52.7

10.1

13 490

Kyber

41.5

15.8

10 620

none

36.3

19.2

9 290

 

Таблица 2.

Результаты тестирования планировщиков на SATA SSD

Планировщик

Пропускная способность (MB/s)

Средняя задержка (мс)

IOPS

mq-deadline

412

0.31

105 500

BFQ

378.4

0.48

96 900

Kyber

395.2

0.35

101 200

none

401.5

0.33

102 800

 

В NVMe-системах накладные расходы планировщиков становятся критичными. Планировщик none передаёт управление напрямую драйверу, в то время как mq-deadline и Kyber добавляют задержки из-за сортировки запросов, а BFQ страдает от избыточного учёта приоритетов. Рост латентности составляет 10–30% по сравнению с none, что делает сложные планировщики неприемлемыми для высокопроизводительных NVMe-систем.

Таблица 3.

Результаты тестирования планировщиков на NVMe SSD

Планировщик

Пропускная способность (MB/s)

Средняя задержка (мс)

IOPS

mq-deadline

2 850

0.11

729 600

BFQ

2 240

0.18

573 400

Kyber

2 910

0.1

744 900

none

3 280

0.07

839 700

 

Экспериментальные данные на NVMe (глубина очереди 32) подтверждают прирост IOPS у none до 15% против mq-deadline и Kyber и до 30% против BFQ, что согласуется с теоретическими ожиданиями и данными П. Валенте [3]. На высокопроизводительных устройствах любой дополнительный слой планирования становится узким местом, поэтому для NVMe при высоких нагрузках none предпочтителен.

Рекомендации по выбору планировщика для серверных и встраиваемых систем

На основе экспериментальных данных разработана матрица выбора планировщика в зависимости от типа накопителя и нагрузки. Для NVMe с преобладанием случайных операций рекомендован режим none, для SATA SSD — mq-deadline.

В серверных средах (базы данных, веб-серверы) для SATA SSD и NVMe оптимальны mq-deadline и Kyber. Mq-deadline предотвращает «голодание» запросов благодаря сортировке и строгим дедлайнам. Kyber адаптивно регулирует глубину очереди, минимизируя задержки без существенной потери пропускной способности.

Для встраиваемых систем с HDD или бюджетными SATA SSD предпочтителен BFQ. Его алгоритм справедливого распределения полосы пропускания гарантирует низкую задержку интерактивных задач при высокой конкуренции за диск, что критично для промышленных контроллеров и мультимедийных устройств.

Заключение

Экспериментально подтверждено, что выбор планировщика ввода-вывода зависит от типа накопителя. Для HDD оптимален BFQ (минимизация перемещений головок), для SATA SSD — mq-deadline (баланс пропускной способности и латентности), для NVMe — none (минимизация накладных расходов ядра). Сложные алгоритмы BFQ и Kyber избыточны для NVMe. Разработанная матрица рекомендаций поможет системным администраторам снизить риск деградации производительности. Работа достигла поставленных целей, предоставив эмпирические данные и практические инструменты.

Список литературы

  1. Linux Kernel Documentation. blk-mq: Multi-queue block layer. URL: https://www.kernel.org/doc/html/latest/block/blk-mq.html
  2. Corbet J. Improving the performance of the BFQ I/O scheduler. LWN.net, 2019. URL: https://lwn.net/Articles/784510/
  3. Valente P. Comparison of Linux I/O Schedulers. University of Modena, 2019. URL: https://algo.ing.unimo.it/people/paolo/disk_sched/
Справка о публикации и препринт статьи
предоставляется сразу после оплаты
Прием материалов
c по
Осталось 2 дня до окончания
Размещение электронной версии
Загрузка материалов в elibrary
Публикация за 24 часа
Узнать подробнее
Акция
Cкидка 20% на размещение статьи, начиная со второй
Бонусная программа
Узнать подробнее