Что это значит, когда в Linux нет планировщика ввода / вывода

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

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

4 ответа

Решение

Из этой вики Debian:

IO-планировщик с низкой задержкой

(Этот шаг не является обязательным для твердотельных накопителей, использующих протокол 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 означает "планировщик не используется".

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

На более ранних ядрах, none на самом деле это плохо документированный псевдоним для noop, Смотрите здесь для более подробной информации.

Принятый ответ неверен. Ни один не является псевдонимом для Noop.

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

Гостевые виртуальные машины имеют виртуальные устройства ввода-вывода, предоставляемые гипервизором. Поэтому фактическое планирование устройства ввода-вывода выполняется ядром гипервизора, и гости передают все операции ввода-вывода устройства непосредственно гипервизору без какого-либо планирования.

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

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

Другие вопросы по тегам