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.
$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