Verifique o io scheduler (chamado de io elevator na documentação do kernel) atribuído a esse volume.
$ cat /sys/block/sda/queue/scheduler
noop anticipatory [deadline] cfq
Para a maioria das distribuições RedHat e Fedora, o padrão é o escalonador CFQ. IMHO isso não é o melhor para um processo de servidor iobound. Eu recomendo o programador de prazos
$ echo "deadline" > /sys/block/sda/queue/scheduler
para alterar isso ou adicionar
elevator=deadline
para seus argumentos de inicialização para torná-lo permanente.
Altos tempos de iowait também podem ser causados por leitura antecipada agressiva, o que pode ser desnecessário para sua carga de trabalho. O padrão para os sistemas RedHat e Fedora é de 128k
$ cat /sys/block/sda/queue/read_ahead_kb
128
Experimente fazer eco dos valores mais baixos para esse arquivo e veja se isso diminui seus tempos de espera.
Além disso, verifique o disco ou matriz subjacente. Se ele for degradado ou recriado, seus tempos de iowait aumentarão conforme o subsistema de disco subjacente rouba a largura de banda io enquanto se reconstrói