Скачки задержки ввода-вывода на диске виртуальной машины

Скачки задержки ввода-вывода на диске виртуальной машины

В последние несколько дней у меня наблюдаются странные скачки ввода-вывода на одной виртуальной машине.

It's 2.6.32-504.el6.x86_64 #1 SMP Вт Сен 16 01:56:35 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux Red Hat Enterprise Linux Server выпуск 6.6 (Сантьяго)

Около 50 ГБ памяти и 24 ЦП, на которых работает узел данных Elasticsearch.

Мы обнаружили тайм-ауты в запросах, идущих к этому узлу elasticsearch, и после проверки виртуальной машины на данный момент мы смогли увидеть только то, что там спорадически застревает дисковый ввод-вывод. Я использовал ioping на одном из дисков в виртуальной машине

4 КиБ <<< /dev/sdf1 (блочное устройство 100,0 ГиБ): запрос=1 время=3,76 мс (прогрев)

4 КиБ <<< /dev/sdf1 (блочное устройство 100,0 ГиБ): запрос=2 время=1,17 с

4 КиБ <<< /dev/sdf1 (блочное устройство 100,0 ГиБ): запрос=3 время=131,7 мкс

4 КиБ <<< /dev/sdf1 (блочное устройство 100,0 ГиБ): запрос=4 время=282,8 мкс

4 КиБ <<< /dev/sdf1 (блочное устройство 100,0 ГиБ): запрос=5 время=999,4 мс

4 КиБ <<< /dev/sdf1 (блочное устройство 100,0 ГиБ): запрос=6 время=632,7 мс

4 КиБ <<< /dev/sdf1 (блочное устройство 100,0 ГиБ): запрос=7 время=2,15 с (медленно)

4 КиБ <<< /dev/sdf1 (блочное устройство 100,0 ГиБ): запрос=8 время=400,2 мс

4 КиБ <<< /dev/sdf1 (блочное устройство 100,0 ГиБ): запрос=9 время=20,0 с (медленно)

4 КиБ <<< /dev/sdf1 (блочное устройство 100,0 ГиБ): запрос=10 время=1,10 мс (быстро)

4 КиБ <<< /dev/sdf1 (блочное устройство 100,0 ГиБ): запрос=11 время=1,30 мс (быстро)

4 КиБ <<< /dev/sdf1 (блочное устройство 100,0 ГиБ): запрос=12 время=2,20 мс (быстро)

4 КиБ <<< /dev/sdf1 (блочное устройство 100,0 ГиБ): запрос=13 время=2,61 мс (быстро)

4 КиБ <<< /dev/sdf1 (блочное устройство 100,0 ГиБ): запрос=14 время=203,6 мкс (быстро)

4 КиБ <<< /dev/sdf1 (блочное устройство 100,0 ГиБ): запрос=15 время=1,09 мс (быстро)

4 КиБ <<< /dev/sdf1 (блочное устройство 100,0 ГиБ): запрос=16 время=319,3 мкс (быстро)

4 КиБ <<< /dev/sdf1 (блочное устройство 100,0 ГиБ): запрос=17 время=249,8 мкс (быстро)

Как вы видите, в какой-то момент был 20-секундный скачок. Виртуальная машина находится на лезвии vmware esxi. Хранилище данных используется еще 3 виртуальными машинами, но ни одна из них не показывает таких проблем с задержкой. Я попробовал fsck и tune2fs, и оба не показали никаких проблем с файловой системой.

На виртуальной машине не было обновлений, когда это началось. Любая подсказка о том, как отладить эту проблему, приветствуется

правка: вот информация atop -d. Похоже, что lv занят на 100%, а java (elasticsearch в этот момент читает)

LVM | vg00-lv_data | занято 100% | | чтение 8904 | запись 4 | | КиБ/ч 11 | КиБ/н 4 |
| МБр/с 10,03 | МБв/с 0,00 | | avq 21,41 | avio 1,12 мс |

PID TID
RDDSK WRDSK
WCANCL DSK
CMD 1/1

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

решение1

В конце концов, похоже, все было вызвано elasticsearch. Мы исключили узел из кластера, а затем добавили его обратно, заставив шарды переместиться с машины, а затем обратно на машину. По какой-то странной причине это исправило проблему.

Связанный контент