Agendador IO de baixa latência

Agendador IO de baixa latência

Eu tenho algumas máquinas virtuais executando a versão 14.04-1 LTS da imagem baseada em nuvem do Ubuntu. Eu queria ver o desempenho de IO de diferentes agendadores de IO na VM, então fui /sys/block/<drive>/queue/schedulerao sistema operacional convidado para alterar o agendador de IO. Normalmente, deve haver cfq, deadlineou nooppara escolher. Mas o que eu vi é none. Isso significa que a Canonical removeu o agendador de E/S na imagem baseada em nuvem ou o agendador noneaqui é o agendador renomeado noop? e o que acontece se não tivermos um agendador de E/S no sistema? Todas as solicitações io foram enviadas diretamente ao host na ordem FIFO?

Obrigado por lançar alguma luz!

Responder1

Deesta Wiki do Debian:

Agendador IO de baixa latência

(Esta etapa não é necessária para SSDs que usam o protocolo NVMe em vez de SATA, que ignora o agendador de E/S tradicional e usa o blk-mqmódulo.)

O agendador de E/S padrão enfileira dados para minimizar buscas em HDDs, o que não é necessário para SSDs. Portanto, use o "deadline"agendador que apenas garante que as transações em massa não atrasem as transações pequenas: Instale sysfsutilse

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

(ajuste o sdX para corresponder ao seu SSD) reinicie ou

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

Então, a resposta é: noneNÃO é um apelido para noop. nonesignifica "o agendador não é usado".

Responder2

Parece que nos kernels >= 3.13 nonenão é mais um alias noop. É mostrado quando oblk-mqEstrutura de E/Sestá em uso; isso significa um desvio completo dos agendadores antigos, já blk-mqque (no momento) não há nenhum agendador para selecionar.

Em kernels anteriores, noneé realmente um alias mal documentado para noop. Veraquipara mais detalhes.

Responder3

None não é um apelido para noop.

Nenhum é exibido porque nenhum planejador está em uso. SSDs que usam o protocolo NVMe em vez de SATA ignoram o agendador de E/S tradicional.

Responder4

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

none (Multiqueue) O agendador de E/S não operacional de múltiplas filas. Não faz reordenação de solicitações, sobrecarga mínima. Ideal para dispositivos de E/S aleatórios rápidos, como NVME.

informação relacionada