вторник, 9 октября 2012 г.

Проблема с Wait IO в Linux

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

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

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


Как видно на картинке - действительно параметр wa подскакивает до 100.

Чтобы отследить "проблемный" процесс - воспользуемся небольшим сочетанием команд:

while true; do date; ps auxf | awk '{if($8=="D") print $0;}'; sleep 1; done

Через некоторое время виновник был найден


Оказалось что в cron попал скрипт который предназначался не этому серверу. Скрипт был убран и все стало на свои места. 

Также хочу добавить, что причина Wait IO может быть различна. Но всегда ответ кроется в процессах со статусом "D".

По материалам chile-offshore.com



Комментариев нет: