Wait IO в Linux

Wait I/O – это параметр который показывает какой процент времени работающие процессы были заблокированы, ожидая когда операция ввода -вывода закончится.

Вот и мне пришлось столкнуться с такой проблемой. Стал замечать, что один из серверов стал периодически “залипать”. Вывод команды top показал что в этот момент wa-процент составлял от 90% до 100%, что было просто не допустимо.

Запустим vmstat, чтобы убедиться в наличии проблемы:

Снимок экрана 2012-10-09 в 17.12.15

Как видно на картинке – действительно параметр wa подскакивает до 100.
Чтобы отследить “проблемный” процесс – воспользуемся небольшим сочетанием команд:
while true; do date; ps auxf | awk '{if($8=="D") print $0;}'; sleep 1; done
Через некоторое время виновник был найден
Снимок экрана 2012-10-09 в 17.10.39
Оказалось что в cron попал скрипт который предназначался не этому серверу. Скрипт был убран и все стало на свои места.
Также хочу добавить, что причина Wait IO может быть различна. Но чаще всего ответ кроется в процессах со статусом “D”.

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *