Деятельность по вводу/выводу данных с диска (I/O), включающая чтение и запись, может существенно влиять на общую производительность системы. Хотя многие системные администраторы при решении проблем с производительностью обращают внимание на активность процессора, необходимо также следить за активностью и задержками на диске.
Существует несколько инструментов Linux для мониторинга дисковой активности, среди которых наиболее распространены iostat, iotop и ioping. iostat следит за вводом/выводом блочных устройств, iotop - за вводом/выводом запущенных процессов, а ioping помогает оценить дисковую задержку.
iostat, iotop и ioping могут быть установлены и запущены из терминала.
Шаги для мониторинга активности дисковых операций ввода-вывода в Linux
Откройте терминал.
Использование sysstat
Установите пакет sysstat для вашего дистрибутива.
1 | sudo apt update && sudo apt install --assume-yes sysstat |
1 | sudo yum install --assumeyes sysstat |
Используйте iostat для просмотра активности ввода-вывода для всех блочных устройств.
1 | iostat |
Пример вывода
1 2 3 4 5 6 7 8 9 10 | Linux 5.8.0-48-generic (host) Jumaat 09 Apr 2021 _x86_64_ (2 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.25 0.01 0.18 0.01 0.00 99.54 Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd ... sda 2.95 16.00 95.17 0.00 800785 4762513 0 sdb 0.00 0.06 0.00 0.00 3233 12 0 sr0 0.00 0.00 0.00 0.00 2 0 0 |
Используйте iostat для мониторинга ввода-вывода для определенного диска или блочного устройства с заданным интервалом.
1 | iostat /dev/sda -y 5 |
Пример вывода
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | Linux 5.8.0-48-generic (host) Sabtu 10 Apr 2021 _x86_64_ (2 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 3.67 0.00 2.73 0.00 0.00 93.60 Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd sda 0.40 0.00 2.40 0.00 0 12 0 avg-cpu: %user %nice %system %iowait %steal %idle 4.73 0.00 2.52 0.00 0.00 92.75 Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd sda 0.00 0.00 0.00 0.00 0 0 0 avg-cpu: %user %nice %system %iowait %steal %idle 3.70 0.00 3.28 0.00 0.00 93.02 Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd sda 31.00 0.00 169.60 0.00 0 848 0 |
Использование iotop
Установите iotop для вашего дистрибутива Linux.
1 | sudo apt update && sudo apt install --assume-yes iotop |
1 | sudo yum install --assumeyes iotop |
Используйте iotop для мониторинга дисковой активности всех запущенных процессов практически в режиме реального времени.
1 | sudo iotop |
Пример
1 2 3 4 5 6 7 8 | Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s Current DISK READ: 0.00 B/s | Current DISK WRITE: 0.00 B/s TID 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 splash 2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd] 3 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_gp] 4 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_par_gp] ... |
Используйте iotop для наблюдения только за процессами с активным вводом/выводом.
1 | sudo iotop -o |
Пример
1 2 3 4 5 | Total DISK READ: 0.00 B/s | Total DISK WRITE: 125.32 K/s Current DISK READ: 0.00 B/s | Current DISK WRITE: 148.82 K/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 7165 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.04 % [kworker/u256:1-events_freezable_power_] 316 be/3 root 0.00 B/s 125.32 K/s 0.00 % 0.03 % [jbd2/sda3-8] |
Использование ioping
Установите ioping для вашего дистрибутива Linux.
1 | sudo apt update && sudo apt install --assume-yes ioping |
1 | sudo yum install --assumeyes ioping |
Используйте ioping для проверки задержки диска.
1 | sudo ioping /dev/sda |
Пример вывода
1 2 3 4 5 6 | 4 KiB <<< /dev/sda (block device 20 GiB): request=1 time=1.13 ms (warmup) 4 KiB <<< /dev/sda (block device 20 GiB): request=2 time=1.50 ms 4 KiB <<< /dev/sda (block device 20 GiB): request=3 time=2.49 ms 4 KiB <<< /dev/sda (block device 20 GiB): request=4 time=1.11 ms 4 KiB <<< /dev/sda (block device 20 GiB): request=5 time=807.4 us 4 KiB <<< /dev/sda (block device 20 GiB): request=6 time=2.02 ms |