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

очень специфический вывод iostat, необходимый в реальном времени

Есть ли способ получить вывод iostat -m и добавить только столбец await из расширенного вывода в реальном времени? Я знаю, что этот вопрос звучит глупо, но мне нужно иметь возможность получать все эти столбцы в реальном времени без вывода в файл или двойного запуска iostat, поскольку это приведет к неверным результатам. Это centos 6.2 iostat 9.0.4. ядро 2.6.36.4. Итак, чтобы подвести итог, мне нужно это.

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
sda               0.56         0.00         0.00        324        485

и мне нужно добавить к нему ожидание, чтобы он выглядел так.

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn   await
sda               0.56         0.00         0.00        324        485   10.72

Я сплю? Я неправильно смотрю на это? Нужно ли мне компилировать собственный iostat?

Заранее спасибо.

Я не знаю, как получить iostat форматирование, которое вы ищете. Однако инструмент, который я использую для этого типа мониторинга, настраивается до такой степени, что вы можете отображать соответствующие поля. Он также отлично подходит для создания данных для воспроизведения и построения графиков.

я использую Собирать мониторинг (доступно в CentOS через yum), а флаги проверки диска должен дать вам то, что вам нужно:

collectl -sD --dskfilt sda

Пример вывода (вы можете изменить печатаемые единицы и столбцы):

collectl -sD --dskfilt sdb
waiting for 1 second sample...

# DISK STATISTICS (/sec)
#          <---------reads---------><---------writes---------><--------averages--------> Pct
#Name       KBytes Merged  IOs Size  KBytes Merged  IOs Size  RWSize  QLen  Wait SvcTim Util
sdb              0      0    0    0     336      0   52    6       6     0     0      0    1
sdb             16      0    1   16     389      1   52    7       7     0     0      0    3
sdb              0      0    0    0    1236      9  109   11      11     0     0      0    0
sdb             16      0    1   16     676      3  140    5       4     0     1      1   14
sdb              0      0    0    0      64      1   16    4       4     0     2      1    2

Это похоже на то, что нужно контролировать с помощью мунина, графита и т. Д.

РЕДАКТИРОВАТЬ: Если в вашей системе watch, вы можете настроить iostat на автоматический запуск заданное (или бесконечно повторяющееся) количество раз с заданным интервалом между запусками! awk из полей, которые вы действительно хотите!

Почему бы не создать оболочку в bash?

Однострочная версия будет выглядеть так:

iostat 1 2 | grep -w sda | tail -1 | awk {'print $7'}

Это запустит iostat дважды и вернет правильное значение await (это 7-й столбец)

Вы можете сделать то же самое с vmstat, передав правый столбец в awk, чтобы получить iowait всего процессора. Например :

vmstat 1 2 | tail -1 | awk {'print $16'}

Обратите внимание, что iostat и vmstat различны в каждом дистрибутиве Linux, и вам нужно выбрать правильный столбец.

перечитывая исходный вопрос, если автор ищет информацию в реальном времени, я согласен, что collectl - это лучший способ. вот почему я написал это. ;)

если есть что-то конкретное, что вы пытаетесь сделать с данными, возможно, я смогу помочь, но мне нужно знать больше. Что касается того, в каком режиме реального времени вы хотите работать, вы можете выбрать любой интервал мониторинга менее секунды, который вам нравится.

-отметка