iostat показывает суммарную загрузку диска по устройству, но не говорит, какой процесс в этом виноват. iotop закрывает этот пробел — тот же принцип, что у top, только вместо CPU и памяти в колонках дисковое чтение/запись по каждому процессу, обновляется вживую.

Голый запуск заваливает список десятками процессов с нулевым I/O, которые просто существуют в системе. Флаг -o (--only) оставляет на экране только тех, кто реально что-то читает или пишет прямо сейчас:

iotop -o

По умолчанию iotop показывает мгновенную скорость за последний интервал — короткий всплеск активности легко проскочить между кадрами. Флаг -a (--accumulated) переключает на накопленный с момента запуска объём I/O, так проще поймать процесс, который написал гигабайты за пару секунд и затих:

iotop -o -a

Колонка IO% — не загрузка диска, а доля времени, которое поток провёл в ожидании I/O или свопинга. Высокий IO% — верный признак, что именно этот процесс держит диск занятым, в отличие от DISK READ/DISK WRITE, которые показывают только объём, но не то, насколько процесс этим объёмом блокируется.

#linux #monitoring