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.
$echocfq|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.
$echocfq> /sys/block/xvda/queue/scheduler