6.4.2. Agendador de Prazo de E/S (Deadline I/O Scheduler)

O Agendador de Prazo de E/S (Deadline I/O scheduler) tenta fornecer uma latência garantida para requisições. É importante notar que a medição de latência só começa quando os pedidos descem para o agendador de E/S (esta é uma distinção importante, pois um aplicativo pode ficar inativo esperando por descritores de requisições para ser liberado). Por padrão, as leituras são prioridade sobre gravações, uma vez que as aplicações são mais propensas a bloquear a leitura de E/S.
Prazos de reparos de E/S em lotes. Um lote é uma seqüência de E/S de leitura ou gravação, que estão em ordem crescente de LBA (o elevador de uma só mão). Após o processamento de cada lote, o agendadorde E/S verifica se os pedidos de gravação faltaram por muito tempo, e então decide se pretende iniciar um novo lote de leitura ou gravação. A lista FIFO de pedidos só é verificada para os pedidos expirados no início de cada lote, e depois para a direção desse lote de dados. Assim, se um lote de gravação é selecionado, e há uma solicitação de leitura expirada, a requisição de leitura não será atendida até que o lote de gravação seja concluído.

Ajustáveis

fifo_batch
Isto determina o número de leituras e gravações a serem emitidos em uma única vez. O padrão é 16. Configurar este número para um valor maior resultará em melhor rendimento mas também aumentará a latência.
front_merges
Você pode definir este ajuste para 0 se você souber se sua carga de trabalho vai gerar alguma mesclagem de frente. A não ser que você tenha medido o cabeçalho desta verificação, recomenda-se deixá-lo como a configuração padrão. (1).
read_expire
Este ajuste permite que você ajuste o número de milisegundos no qual a requisição de leitura deve ser atendida. Por padrão isto é definido para 500 ms (meio segundo).
write_expire
Este ajuste permite que você defina o número de milisegundos no qual uma requisição de gravação deve ser atendida. Por padrão ele é definido para 5000 ms (cinco segundos).
writes_starved
Este ajuste controla quantos grupos de leituras podem ser processados antes de processar um único grupo de gravação. Quanto maior o ajuste mais preferência é dada à leitura.