Лучший инструмент для анализа производительности дисков в реальном времени:
iostat -dx 1 5
# Параметры:
# -d - только дисковые устройства
# -x - расширенная статистика
# 1 - интервал в секундах
# 5 - количество отчетов
Ключевые метрики в выводе:
%util - процент использования диска (важнейший показатель)await - среднее время ожидания I/O (мс)r/s, w/s - операции чтения/записи в секундуrkB/s, wkB/s - скорость чтения/записи (КБ/с)Показывает какие процессы создают нагрузку:
sudo iotop -oP
# Параметры:
# -o - только активные процессы
# -P - показывать только процессы
Преимущества:
vmstat -d 1
Выводит:
dstat -td --disk-util --top-io 1
# Показывает:
# - время
# - загрузку дисков
# - процессы с максимальным I/O
pidstat -dl 1
# Параметры:
# -d - статистика дисковых операций
# -l - полные имена команд
Для глубокой диагностики проблем:
blktrace -d /dev/sda -o - | blkparse -i -
(требует прав root)
cat /sys/block/sda/queue/nr_requests
# Или для всех устройств:
lsblk -d -o NAME,MOUNTPOINT,ROTA,SCHED,RQ-SIZE
# Активируем сбор (если не активен):
sudo sed -i 's/ENABLED="false"/ENABLED="true"/' /etc/default/sysstat
sudo systemctl enable --now sysstat
# Просмотр данных за сегодня:
sar -d -p
cat /proc/diskstats
# Или более читаемо:
awk '{print $3"\t"$4"\t"$8"\t"$12}' /proc/diskstats | column -t
Пример скрипта для отслеживания медленных операций:
sudo bpftrace -e 'tracepoint:block:block_rq_complete {
@[args->dev] = hist(args->nr_sector * 512); }'
Пример метрик для мониторинга:
Высокая загрузка диска (%util > 90%):
iotop, pidstat)iostat -x)Большое время ожидания (await > 10ms):
smartctl)Базовые инструменты:
iostat - основной инструмент для быстрой диагностикиiotop - идентификация "прожорливых" процессовvmstat/dstat - общий мониторингПродвинутые методы:
blktrace - для глубокого анализа проблемbpftrace - для кастомного мониторингаsar - для исторических данныхДля DevOps практики:
Критические метрики:
Оптимизация: