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

Подсчет дисковых операций ввода-вывода в секунду в GNU / Linux

Я не могу найти информацию о способах подсчета операций ввода-вывода на диск в GNU / Linux в течение некоторого периода времени. Я видел iostat, но не уверен, что это правильный путь. Также мне нужен инструмент, который может подсчитывать iops за все время с момента запуска системы, но iostat этого не делает. Я имею в виду дисковые операции в секунду для целых систем и для любого логического тома.

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

Если это важно, я использую Debian. Также я использую аппаратный MegaRaid Raid Controller. Может быть, это влияет на что-л.

iostat - это правильный способ подсчитать количество операций ввода-вывода с течением времени.

Если вам нужны итоги с момента загрузки, вы можете прочитать их из /proc/disktats. Описание формата файла находится в вашем ядре Documentation/iostats.txt (или Вот).

Эта информация также доступна для каждого устройства или раздела в /sys/block/${DEVICE}/stat и /sys/block/${DEVICE}/${DEVPART}/stat (замена ${DEVICE} с именем вашего устройства, например. sda и ${DEVPART} с именем вашего раздела, например. sda5).

Я предпочитаю использовать cd /dev; iostat -xk 3 sd? fio? смотреть IO диска. Взгляните на этот образец отрывка:

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.20    0.00    4.58    0.00    0.00   94.22

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sdg               0.00     0.00    6.67  238.00  3413.33 39774.67   353.04     0.25    1.02   0.37   9.17
sda               0.00     0.00    5.33 3570.67  2730.67 42230.50    25.15     0.44    0.12   0.07  25.20
sdc               0.00     0.00   10.33  795.00  3089.33 44510.00   118.21     0.40    0.47   0.16  12.83
sdf               0.00     0.00    6.67  254.67  3413.33 40318.67   334.68     0.24    0.93   0.35   9.07
sdh               0.00     0.00   14.33  338.00  3444.00 43286.67   265.26     0.27    0.78   0.29  10.23
sdi               0.00     0.00    8.67  906.33  4437.33 44533.17   107.04     0.36    0.40   0.15  14.17
sdb               0.00     0.00    4.67 2355.33  2389.33 44427.50    39.68     0.51    0.21   0.08  18.87
sdd               0.00     0.00    7.00  256.00  3414.67 40434.67   333.46     0.32    1.22   0.37   9.60
sde               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
fioa              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

Среднее количество операций ввода-вывода в секунду для этого интервала - это сумма r/s и w/s и ваш avgrq-sz (средний размер запроса в секторах) дает представление о том, является ли рабочая нагрузка случайной или последовательной.

Взгляни на sdg vs. sda в примере выше. Оба они записывают на диск около 40 Мбит / с, но размер запроса намного меньше для sda (случайная рабочая нагрузка), что приводит к более высокому IOPS.

Если вы хотите отслеживать IOPS (и другую производительность) в течение длительного периода времени, я настоятельно рекомендую использовать nmon для сбора данных и создания красивых графиков.

Iotop делает то, что вы хотите? Возможно, это немного больше реального времени, чем вы хотели.

иначе попробуйте iostat 5 5