Что это значит, когда в 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.