iostat — шпаргалка

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 → диск просто загружен, но справляется

Прокрутить вверх