Есть ли способ получить вывод 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 - это лучший способ. вот почему я написал это. ;)
если есть что-то конкретное, что вы пытаетесь сделать с данными, возможно, я смогу помочь, но мне нужно знать больше. Что касается того, в каком режиме реального времени вы хотите работать, вы можете выбрать любой интервал мониторинга менее секунды, который вам нравится.
-отметка