Назад | Перейти на главную страницу

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

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

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

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

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

Из эта 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 означает «планировщик не используется».

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

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

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

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

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