Лучший инструмент для анализа производительности дисков в реальном времени:
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 практики:
Критические метрики:
Оптимизация: