Сводная информация по нагрузке на диск. Использую iostat из пакета sysstat. Каждые 2 секунды вывожу информацию в консоль:
iostat -xk -t 2С помощью этого вывода можно бегло оценить, что в целом происходит с каждым конкретным диском.
Дисковая активность всех процессов. Использую pidstat. Каждую секунду вывожу в консоль информацию о дисковой активности всех процессов.
pidstat -d 1Дисковая активность конкретного процесса.
pidstat -p PID -d 1Напоминаю, что PID процесса можно посмотреть командой pgrep:
pgrep php-fpmЧто пишет процесс.
strace -e trace=write -p PIDАнализ I/O дисков, в том числе latency. Я уже упоминал в прошлой заметке репозиторий https://github.com/brendangregg/perf-tools. Утилита iosnoop показывает нагрузку на диск, в том числе latency. Больше примеров тут.
./iosnoop./iosnoop -p PIDСписок удаленных открытых файлов. Еще одна полезная команда, которая позволяет решить популярную проблему, когда казалось бы места свободного должно быть много, но его реально нет. Принудительно удален какой-то открытый файл, поэтому место не освободилось.
lsof +L1lsof | grep '(deleted)'Список открытых файлов в конкретной директории.
lsof +D /var/logТак же есть аналог топа - iotop. С его помощью можно в реальном времени посмотреть дисковую активность.
И еще отдельно упомяну утилиту dstat (dnf install dstat). Мне нравится её вывод (см. скриншот) по общей загрузке системы, в том числе и дисков. Все популярные метрики:
dstat -tldnpms 10Только диски по read_bytes / write_bytes (нагрузка на "железо")
dstat --top-bioДиски по rchar/wchar (нагрузка на "по", т.е. включая обращения ко всяким виртуальным ФС):
dstat --top-io#bash