Итак, какое значение мы должны прочитать, чтобы получить количество операций ввода-вывода в секунду для каждого процесса?
Я пробовал / 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.