Планировщик ввода-вывода с малой задержкой

Планировщик ввода-вывода с малой задержкой

У меня есть несколько виртуальных машин, работающих под управлением облачного образа Ubuntu версии 14.04-1 LTS. Я хотел посмотреть производительность ввода-вывода различных планировщиков ввода-вывода на виртуальной машине, поэтому я перешел /sys/block/<drive>/queue/schedulerв гостевую ОС, чтобы изменить планировщик ввода-вывода. Обычно, там должно быть cfq, deadline, или noopдля выбора. Но то, что я увидел, это none. Означает ли это, что Canonical удалила планировщик ввода-вывода в облачном образе или планировщик noneздесь — это переименованный noopпланировщик? И что произойдет, если у нас нет планировщика ввода-вывода в системе? Все запросы ввода-вывода были отправлены хосту напрямую в порядке FIFO?

Спасибо, что пролили свет!

решение1

Отэта Debian Wiki:

Планировщик ввода-вывода с малой задержкой

(Этот шаг необязателен для твердотельных накопителей, использующих протокол NVMe вместо SATA, которые обходят традиционный планировщик ввода-вывода и blk-mqвместо этого используют модуль.)

Планировщик ввода-вывода по умолчанию ставит данные в очередь, чтобы минимизировать запросы на жестких дисках, что не нужно для твердотельных накопителей. Таким образом, используйте планировщик "deadline", который просто гарантирует, что массовые транзакции не замедлят мелкие транзакции: Установите sysfsutilsи

echo "block/sdX/queue/scheduler = deadline" >> /etc/sysfs.conf

(настройте sdX в соответствии с вашим SSD) перезагрузите или

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

Итак, ответ: noneНЕ является псевдонимом для noop. noneозначает «планировщик не используется».

решение2

Похоже, что на ядрах >= 3.13 больше noneнет псевдонима noop. Он отображается, когдаblk-mqФреймворк ввода-выводаиспользуется; это означает полный обход старых планировщиков, поскольку blk-mq(на данный момент) вообще нет планировщиков для выбора.

В более ранних ядрах noneэто действительно плохо документированный псевдоним для noop. СмотритездесьБольше подробностей.

решение3

None не является псевдонимом для noop.

None не отображается, поскольку планировщик не используется. SSD-накопители, использующие протокол NVMe вместо SATA, обходят традиционный планировщик ввода-вывода.

решение4

https://wiki.ubuntu.com/Kernel/Reference/IOSchedulers

none (Multiqueue) Многоочередной планировщик ввода-вывода без операций. Не переупорядочивает запросы, минимальные накладные расходы. Идеально подходит для быстрых случайных устройств ввода-вывода, таких как NVME.

Связанный контент