Eu tenho a seguinte configuração:
- Stock Debian estável (kernel Linux 3.16.7) em execução no Dell PowerEdge R320
- Dois discos rígidos SATA em RAID1 em um controlador PERC H310 Mini, visíveis como
/dev/sda
- destino dm-crypt
dm-0
apoiado por/dev/sda2
- Um único grupo de volumes LVM com um único volume físico mencionado acima
dm-0
- Múltiplos volumes lógicos
dm-1
,dm-2
etc. no grupo de volumes acima mencionado, formatados comoext4
O que acontece é que quando um único processo começa a gravar em massa em um volume lógico, todos os outros processos ficam severamente sem E/S - o sistema fica muito sem resposta (com atrasos de até 30 segundos quando a E/S está envolvida).
Achei que era o agendador de E/S encarregado de garantir que isso não acontecesse. Eu vejo que sda
usa cfq
:
# cat /sys/block/sda/queue/scheduler
noop deadline [cfq]
Mas todos os outros destinos do mapeador de dispositivos relatam não ter agendador de E/S:
# cat /sys/block/dm-0/queue/scheduler
none
# cat /sys/block/dm-1/queue/scheduler
none
# cat /sys/block/dm-2/queue/scheduler
none
Minha pergunta é: por que não há agendamento de E/S para os destinos do mapeador de dispositivos, posso habilitá-lo ou como posso tornar este sistema responsivo sob carga pesada de E/S?