Linux: описание утилиты iotop

Автор: | 21/09/2014

Hardware logoУтилита аналогична утилите top, но отображает использование не CPU и памяти, а работу процессов с дисками.

Пример вывода утилиты:

Total DISK READ: 0.00 B/s | Total DISK WRITE: 50.40 K/s
PID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % init
2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd]
...

Полезные ключи:

-o – отображать только процессы, которые в данный момент выполняют операции I/O с диском (по умолчанию – отображаются все активные процессы);
-b – отключить интерактивный режим (например – для логгирования);
-n – задать число выполнения проверок перед выходом;
-d – интервал (секунды) между проверками;
-pPID процесса, который надо отслеживать;
-u – имя пользователя, которого надо отслеживать;
-P – отображать только процессы (по-умолчанию – все процессы и потоки);
-k – отображать инфомрацию в KB;
-t – добавить отображение времени выполнения проверки;
-q (-qq, -qqq) – уменьшить количество выводимой информации.

iotop поддерживает поддерживает некоторое управление с клавиатуры:

  • стрелки влево-вправо – изменить сортировку колонок;
  • r – изменить сортировку строк в выбранной колонке на обратную (a-z > z-a);
  • i – изменить nice процесса (утилитой ionice);

Примеры использования.

Записывать в лог:

# iotop -botqqqk --iter=60 >> /var/log/iotop

Результат:

# tail /var/log/iotop
17:27:30  8234 be/4 mysql       0.00 K/s    0.00 K/s  0.00 %  0.00 % mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --pid-file=/var/lib/mysql/venti.setevoy.org.ua.pid --socket=/var/lib/mysql/mysql.sock --port=3306
17:27:31  8234 be/4 mysql       0.00 K/s    0.00 K/s  0.00 % 49.05 % mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --pid-file=/var/lib/mysql/venti.setevoy.org.ua.pid --socket=/var/lib/mysql/mysql.sock --port=3306
17:27:31  8235 be/4 mysql       0.00 K/s    0.00 K/s  0.00 % 49.03 % mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --pid-file=/var/lib/mysql/venti.setevoy.org.ua.pid --socket=/var/lib

Записывать только те процессы, которые генерируют более 10 КБ/с:

# iotop -botqqqk --iter=60 | grep -P "dd.dd K/s" >> /var/log/iotop