
В последние несколько дней у меня наблюдаются странные скачки ввода-вывода на одной виртуальной машине.
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/12629 -
100,3M 12K 0K 100%
Java
решение1
В конце концов, похоже, все было вызвано elasticsearch. Мы исключили узел из кластера, а затем добавили его обратно, заставив шарды переместиться с машины, а затем обратно на машину. По какой-то странной причине это исправило проблему.