Picos de latência de E/S do disco da máquina virtual

Picos de latência de E/S do disco da máquina virtual

Desde os últimos dias, tenho picos estranhos de E/S em uma máquina virtual.

É 2.6.32-504.el6.x86_64 #1 SMP Ter 16 de setembro 01:56:35 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux Red Hat Enterprise Linux Server versão 6.6 (Santiago)

Cerca de 50G de memória e 24CPUs executando nó de dados elasticsearch.

Detectamos tempos limite nas solicitações indo para aquele nó do elasticsearch e, depois de inspecionar a VM, por enquanto, só conseguimos ver que esporadicamente a E/S do disco trava. Usei ioping em um dos discos da máquina virtual

4 KiB <<< /dev/sdf1 (dispositivo de bloco 100,0 GiB): solicitação = 1 tempo = 3,76 ms (aquecimento)

4 KiB <<< /dev/sdf1 (dispositivo de bloco 100,0 GiB): solicitação = 2 tempo = 1,17 s

4 KiB <<< /dev/sdf1 (dispositivo de bloco 100,0 GiB): request=3 time=131,7 us

4 KiB <<< /dev/sdf1 (dispositivo de bloco 100,0 GiB): request=4 time=282,8 us

4 KiB <<< /dev/sdf1 (dispositivo de bloco 100,0 GiB): solicitação = 5 tempo = 999,4 ms

4 KiB <<< /dev/sdf1 (dispositivo de bloco 100,0 GiB): solicitação = 6 tempo = 632,7 ms

4 KiB <<< /dev/sdf1 (dispositivo de bloco 100,0 GiB): solicitação = 7 tempo = 2,15 s (lento)

4 KiB <<< /dev/sdf1 (dispositivo de bloco 100,0 GiB): solicitação = 8 tempo = 400,2 ms

4 KiB <<< /dev/sdf1 (dispositivo de bloco 100,0 GiB): solicitação = 9 tempo = 20,0 s (lento)

4 KiB <<< /dev/sdf1 (dispositivo de bloco 100,0 GiB): solicitação = 10 tempo = 1,10 ms (rápido)

4 KiB <<< /dev/sdf1 (dispositivo de bloco 100,0 GiB): solicitação = 11 tempo = 1,30 ms (rápido)

4 KiB <<< /dev/sdf1 (dispositivo de bloco 100,0 GiB): solicitação = 12 tempo = 2,20 ms (rápido)

4 KiB <<< /dev/sdf1 (dispositivo de bloco 100,0 GiB): solicitação = 13 tempo = 2,61 ms (rápido)

4 KiB <<< /dev/sdf1 (dispositivo de bloco 100,0 GiB): request=14 time=203,6 us (rápido)

4 KiB <<< /dev/sdf1 (dispositivo de bloco 100,0 GiB): solicitação = 15 tempo = 1,09 ms (rápido)

4 KiB <<< /dev/sdf1 (dispositivo de bloco 100,0 GiB): request=16 time=319,3 us (rápido)

4 KiB <<< /dev/sdf1 (dispositivo de bloco 100,0 GiB): request=17 time=249,8 us (rápido)

Como você pode ver, houve um pico de 20 segundos em um momento. A máquina virtual está no vmware esxi blade. O Datastore está sendo usado por mais três máquinas virtuais, mas nenhuma delas apresenta esse tipo de problema de latência. Tentei fsck e tune2fs e ambos não apresentaram problemas no sistema de arquivos.

Não houve atualizações na máquina virtual quando isso começou a acontecer. Qualquer dica sobre como depurar este problema é apreciada

editar: aqui está no topo -d info. Parece que lv fica 100% ocupado e java (elasticsearch está lendo naquele momento)

LVM | vg00-lv_data | ocupado 100% | | leia 8904 | escreva 4 | | KiB/r 11 | KiB/w 4 |
| MBr/s 10.03 | MBw/s 0,00 | | avq 21,41 | avio 1,12 ms |

PID TID
RDDSK WRDSK
WCANCL DSK
CMD 1/1

2629 -
100,3M 12K 0K 100%
java

Responder1

No final, parece que tudo foi causado pelo elasticsearch. Excluímos o nó do cluster e o adicionamos novamente, fazendo com que os fragmentos fossem realocados da máquina e depois de volta para a máquina. Por algum motivo estranho, isso resolveu o problema.

informação relacionada