

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
<a name="io-scheduler"></a>

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.

**Topics**
+ [Programadores com suporte](#supported-schedulers)
+ [Programador padrão](#default-schedulers)
+ [Alterar o programador](#change-scheduler)

## Programadores com suporte
<a name="supported-schedulers"></a>

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
<a name="default-schedulers"></a>

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 name="change-scheduler"></a>

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
```