Я пытаюсь понять, как считать прочитанные и записанные байты в секунду. Сейчас я читаю данные из / proc / diskstats, которые выглядят так:
202 0 xvda 80702313 1132334 2823807338 426518304 89838477 177437957 2140229136 1696949080 0 142957364 2123455348
Я прочитал 6-е (чтение секторов / с) и 10-е (количество секторов / с) поля и умножил их на 512 (я решил, что это правильное значение, проверив вывод fdisk, который говорит sectors of 1 * 512 = 512 bytes
), который должен дать мне количество байтов. Я беру 2 образца и вычитаю первый из последнего, а затем делю полученные значения на количество секунд между выборками. Однако, похоже, это не дает правильных результатов. Кто-нибудь знает, как это сделать на самом деле? Ищу что-то похожее на то, что sar -b
выходы
Спасибо
Потому что вы не можете сравнивать их обоих. sar -b используется в определенное время, с интервалом в 10 минут или в зависимости от того, что вы указали в своем задании cron.
Но / proc / diskstats - это значение времени выполнения ядра. Он рассчитывается не в каком-то конкретном временном интервале, а скорее как счетчик, который ядро сохраняет для учета. Отсюда iostat считывает данные. Если вы укажете iostat -xdk 5 5, то с интервалом в 5 секунд iostat будет читать файл / proc / diskstats и получать оттуда средневзвешенное значение данных. Важно отметить, что / proc / diskstats не зависит от времени, и, следовательно, вы не можете сравнивать его с sar -b, который выполняется через фиксированные, определенные интервалы времени.
Если вам нужно более подробное описание, я могу проверить код и сказать, но сейчас здесь действительно поздно.
Используйте iostat с интервалом
iostat -d /dev/xvda <interval(sec)> <counter>
Выполните iostat с интервалом 10 секунд
iostat -d /dev/xvda 10
Если вы хотите получить простой вывод для построения графика
iostat -d /dev/xvda 10 | grep xvda
Тогда это даст вам что-то вроде следующего
xvda 1.30 3.28 38.68 1151011 13583372
xvda 15.00 0.00 100.00 0 100
xvda 0.00 0.00 0.00 0 0
xvda 0.00 0.00 0.00 0 0
xvda 5.00 0.00 32.00 0 32
xvda 0.00 0.00 0.00 0 0
xvda 0.00 0.00 0.00 0 0
xvda 8.00 0.00 240.00 0 240
xvda 0.00 0.00 0.00 0 0
Вы всегда должны отбрасывать первую строку, потому что это сумма с момента запуска машины или с момента последнего цикла счетчика.
Я не уверен, насколько сложно построить график с использованием графита, вы можете скопировать и вставить их в Excel или LibraOffice Calc и создать диаграмму.