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