View a markdown version of this page

I/O agendador para AL2 - Amazon Linux 2

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

I/O agendador para AL2

O I/O agendador é uma parte do sistema operacional Linux que classifica e mescla I/O solicitações e determina a ordem na qual elas são processadas.

I/O os programadores são particularmente benéficos para dispositivos como discos rígidos magnéticos, onde o tempo de busca pode ser caro e onde é ideal mesclar solicitações co-localizadas. I/O os programadores têm menos efeito com dispositivos de estado sólido e ambientes virtualizados. Isso ocorre porque, para dispositivos de estado sólido, o acesso sequencial e o acesso aleatório não diferem e, para ambientes virtualizados, o host fornece sua própria camada de programação.

Este tópico discute o I/O agendador Amazon Linux. Para obter mais informações sobre o I/O agendador usado por outras distribuições Linux, consulte a respectiva documentação.

Programadores com suporte

O Amazon Linux oferece suporte aos seguintes I/O agendadores:

  • deadline— O I/O agendador de prazos classifica as I/O solicitações e as trata na ordem mais eficiente. Isso garante um horário de início para cada I/O solicitação. Também dá maior prioridade às I/O solicitações que estão pendentes há muito tempo.

  • cfq— O I/O programador Completely Fair Queueing (CFQ) tenta I/O alocar recursos de forma justa entre os processos. Ele classifica e insere I/O solicitações em filas por processo.

  • noop— O I/O agendador No Operation (noop) insere todas as I/O solicitações em uma fila FIFO e as mescla em uma única solicitação. Esse programador não faz nenhuma classificação de solicitações.

Programador padrão

No Operation (noop) é o I/O agendador padrão para o Amazon Linux. Este programador é usado pelos seguintes motivos:

  • Muitos tipos de instância usam dispositivos virtualizados em que o host subjacente executa a programação para a instância.

  • Dispositivos de estado sólido são usados em muitos tipos de instâncias em que os benefícios de um I/O programador têm menos efeito.

  • É o I/O programador menos invasivo e pode ser personalizado, se necessário.

Alterar o programador

A alteração do I/O agendador pode aumentar ou diminuir o desempenho com base no fato de o agendador resultar na conclusão de mais ou menos I/O solicitações em um determinado período. Isso depende, em grande parte, da workload, da geração do tipo de instância que está sendo usado e do tipo de dispositivo que está sendo acessado. Se você alterar o I/O agendador que está sendo usado, recomendamos usar uma ferramenta, como iotop, para medir o I/O desempenho e determinar se a alteração é benéfica para seu caso de uso.

Você pode visualizar o I/O agendador de um dispositivo usando o comando a seguir, que usa nvme0n1 como exemplo. Substitua nvme0n1 no comando a seguir pelo dispositivo listado em /sys/block na sua instância.

$ cat /sys/block/nvme0n1/queue/scheduler

Para definir o I/O agendador para o dispositivo, use o comando a seguir.

$ echo cfq|deadline|noop > /sys/block/nvme0n1/queue/scheduler

Por exemplo, para definir o I/O agendador para um xvda dispositivo de noop atécfq, use o comando a seguir.

$ echo cfq > /sys/block/xvda/queue/scheduler