vmstat говорит о машине целиком. Какой диск занят и какой процесс его держит, показывают iostat и pidstat из пакета sysstat.
Найди, кто пишет
Посмотри два снимка iostat, потом ввод-вывод процессов в pidstat — сначала от своего имени, потом через sudo. Последняя команда покажет службу процесса exporter.
Сначала предположи
Что покажет pidstat -d, запущенный от твоего имени, без sudo?
Теперь начни упражнение, выполни команду и сверь прогноз с выводом.
В iostat первый снимок — средние значения с загрузки машины, второй — за последнюю секунду: читай второй. Строка vda — диск машины:
| Столбец | Что значит |
|---|---|
| w/s, wkB/s | записей в секунду и КиБ в секунду |
| w_await | сколько миллисекунд в среднем ждёт одна запись, с очередью |
| aqu-sz | сколько запросов в среднем стоит в очереди к диску |
| %util | доля времени, когда у диска был хотя бы один запрос |
pidstat -d раскладывает ввод-вывод по процессам: kB_rd/s и kB_wr/s — чтение и запись процесса в КиБ в секунду. Счётчики процесса лежат в /proc/<PID>/io, а его читают только владелец и root, поэтому без sudo pidstat видит лишь твои процессы. pidstat считает запись самого процесса, а iostat — всё, что дошло до диска, вместе с журналом файловой системы. Поэтому у exporter сотни КиБ в секунду, а у vda — тысячи.
По PID службу находит столбец UNIT в ps -o pid,unit,comm -p <PID>; то же покажет systemctl status <PID>.
Во втором снимке iostat у vda %util — 95. Что это значит?
-
Скорость %util не измеряет, он считает только время, когда у диска были запросы. У vda при 95 % пишется всего несколько МБ/с — столбец wkB/s.
-
%util считает время, когда у диска были запросы. Место показывает
df -h: на машине урока занято меньше половины диска.
%util — доля времени, когда у диска был хотя бы один запрос. 95 % значит, что диск почти всё время занят, хотя данных он пишет немного — несколько МБ/с. Место на диске — другое число, его показывает df -h.