Programador de E/S 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á.

Programador de E/S para AL2

As I/O scheduler is a part of the Linux operating system that sorts and merges I/O solicitações e determina a ordem na qual elas são processadas.

I/O schedulers are particularly beneficial for devices such as magnetic hard drives, where seek time can be expensive and where it is optimal to merge co-located requests. I/Oos 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 programador de E/S 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 uma hora de início para cada I/O request. It also gives I/O solicitação que está pendente há muito tempo e tem uma prioridade mais alta.

  • cfq— O I/O programador Completely Fair Queueing (CFQ) tenta I/O resources between processes. It sorts and inserts I/O alocar de forma justa as solicitações em filas por processo.

  • noop— As I/O scheduler inserts all I/O solicitações No Operation (noop) em uma fila FIFO e as mesclam 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 programador de E/S 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