Назад | Перейти на главную страницу

Получение IOPS процессов в Linux

Итак, какое значение мы должны прочитать, чтобы получить количество операций ввода-вывода в секунду для каждого процесса?

Я пробовал / proc / [pid] / io, который возвращает эти значения:

корень @ узел: ~ # cat / proc / 31597 / io
rchar: 213260190
wchar: 462308212
syscr: 23275044
syscw: 47797624
read_bytes: 894867968
write_bytes: 27645691392
cancelled_write_bytes: 0

Из определения:

syscr, syscw - Счетчики количества операций ввода-вывода (соответственно: чтение и запись). Затем мы можем использовать его для вычисления среднего количества данных, передаваемых за один системный вызов.

Так что я считать последнее значение syscw минус предыдущее значение syscw через секунду должно дать мне количество операций записи, выполненных процессом 31597

Однако, когда процесс выполняет запись со скоростью около 5 МБ / с (небольшие файлы), я получаю значение 6500 IOPS для записи, и мне это не кажется правильным.

Любые идеи?

iotop может быть программа, которую вы ищете. Это как верх, но для ввода / вывода.

Вам потребуется ядро ​​версии 2.6.20 или выше и привилегии root.