Toda carga de trabalho é diferente. Portanto, não há um tamanho único para responder a essa pergunta. Para tornar as coisas mais complicadas, a maioria dos Agendadores de IO tem sintonizadores. Portanto, a melhor coisa que você pode fazer é testar o mais próximo possível do benchmarking real da carga de trabalho. Contanto que seu teste seja repetitivo, ele deve funcionar.
Você pode alterar agendadores de IO em tempo real, sem reinicializar, o que torna fácil fazer experimentos com os agendadores de io. Para isso, use um comando como este echo anticipatory | sudo tee /sys/block/sdb/queue/scheduler
substituindo o antecipatório pelo agendador de escolha e sdb pelo dispositivo de bloco correto. Você também pode fazer echo anticipatory > /sys/block/sdb/queue/scheduler
se estiver logado como root. Eu uso a abordagem tee para que eu possa usar o sudo.
Como minaev, tive muita sorte com o Deadline em servidores de arquivos atarefados. Nós não tínhamos nenhum material de banco de dados, pois era principalmente o processamento de imagens com um cluster de computação. Mas eles saturariam 2 links GigE e carregariam esse servidor por 48 horas de cada vez.
Eu também usei o NOOP ao lidar com matrizes RAID externas. O que quero dizer com externo é que o controlador RAID é independente no chassi externo e o servidor apenas vê isso como uma unidade SCSI. Se o controlador RAID estiver no servidor, acho que você ainda quer evitar o NOOP. Mas você deve ser capaz de descobrir o que funciona melhor para você com algum benchmarking.