iostat показывает загрузку CPU и статистику ввода/вывода по дискам. Полезен для поиска узких мест в дисковой подсистеме.
Синтаксис:iostat [опции] [интервал] [количество]
интервал — через сколько секунд обновлять
количество — сколько раз вывести информацию
Основные опции:
| Опции | Описание |
|---|---|
| -c | Только CPU |
| -d | Только диски |
| -x | Расширенная статистика |
| -k | в KB/s |
| -m | в MB/s |
| -t | Добавить время вывода информации |
| -p | Вывод по разделам (например -p sda) |
| -y | пропустить первый (средний) отчет |
Расшифровка столбцов:
Общие (по операциям)
r/s — чтений в секунду
w/s — записей в секунду
d/s — операций удаления (discard, SSD trim)
f/s — flush-запросы (сброс кэша)
Объем данных
rkB/s — чтение (KB/s)
wkB/s — запись (KB/s)
dkB/s — discard (KB/s)
*При запуске iostat с ключом -m вывод будет в MB/s
Размер операций
rareq-sz — средний размер чтения
wareq-sz — средний размер записи
dareq-sz — средний размер discard
*В килобайтах
Очереди и задержки
r_await — среднее время чтения (мс)
w_await — среднее время записи (мс)
d_await — время discard
f_await — время flush
*включает и ожидание в очереди, и само выполнение
Очередь
aqu-sz — средний размер очереди I/O
*если стабильно >1–2 — диск не справляется
Загрузка диска
%util — процент времени, когда диск занят
~50% — нормально
~80% — сильная нагрузка
~100% — узкое место
Дополнительно
rrqm/s, wrqm/s — объединённые запросы (merge)
%rrqm, %wrqm — процент merge
высокие значения = ядро эффективно склеивает операции
Быстрая диагностика
высокий await → проблема с задержками
высокий aqu-sz → очередь забита
%util ≈ 100% → диск упёрся в потолок
маленький await, но высокий util → диск просто загружен, но справляется