27 января 2011 г.

Отслеживание процессов, выполняющих операции ввода-вывода

Команда top в Линуксе, к сожалению, показывает только процессы занимающие процессорное время, а иногда нужно отследить процессы, которые что-то пишут или читают с диска. Для этого есть команда iotop — показывает процессы и потоки, которые в данный момент выполняют операции ввода-вывода.

Однако iotop не показывает процессы, которые находятся в состояии ожидания во время ввода-вывода. Ожидающие процессы можно посмотреть командой ps aux — такие процессы будут помечены буквой D в столбце STAT. Или более удобно отследить их в "реальном времени" с помощью комбинации ps и watch:

watch -n 1 "(ps aux | awk '\$8 ~ /D/ { print \$0 }')"