O que significa quando o Linux não possui um agendador de E / S

5

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

Obrigado por derramar alguma luz!

    
por Ha Son Hai 20.05.2015 / 17:45

4 respostas

5

De este Wiki do Debian :

Low-Latency IO-Scheduler

(This step is not necessary for SSDs using the NVMe protocol instead of SATA, which bypass the traditional I/O scheduler and use the blk-mq module instead.)

The default I/O scheduler queues data to minimize seeks on HDDs, which is not necessary for SSDs. Thus, use the "deadline" scheduler that just ensures bulk transactions won't slow down small transactions: Install sysfsutils and

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

(adjust sdX to match your SSD) reboot or

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

Portanto, a resposta é: none NÃO é um alias para noop . none significa "o agendador não é usado".

    
por 20.11.2016 / 17:29
13

Parece que nos kernels > = 3.13 none não é mais um alias de noop . É mostrado quando a blk-mq estrutura de E / S está em uso ; isso significa um bypass completo dos agendadores antigos, já que blk-mq tem (agora) nenhum agendador para selecionar.

Em kernels anteriores, none é realmente um alias pouco documentado para noop . Consulte aqui para mais detalhes.

    
por 20.05.2015 / 19:25
3

A resposta aceita está incorreta. Nenhum não é um apelido para noop.

Nenhum, simplesmente porque nenhum agendador está em uso. SSDs usando o protocolo NVMe em vez de SATA ignoram o agendador de E / S tradicional.

    
por 27.09.2016 / 16:58
2

VMs convidadas possuem dispositivos de E / S virtuais fornecidos pelo hipervisor. Portanto, o agendamento real do dispositivo de E / S é realizado pelo kernel do hipervisor e os convidados passam todas as E / S do dispositivo diretamente para o hipervisor sem qualquer planejamento.

    
por 27.09.2016 / 21:30