Утилита аналогична утилите 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
– интервал (секунды) между проверками;
-p
– PID
процесса, который надо отслеживать;
-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