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

верхняя команда + как проверить значение iowait в течение одного часа

моя цель - проверить Айоваит значение, которое не выше 50 от верхней команды

и если значение больше 50 в течение более одного часа, тогда необходимо подать сигнал тревоги об этом (скриптом или другим вариантом)

до сих пор я делаю следующее:

  top-n|grepiowait
  CPUstates:94.3%idle,0.5%user,5.2%kernel,0.0%iowait,0.0%swap

Я легко могу запечатлеть iowait следующим образом:

 top-n|grepiowait|awk'{print$9}'|seds'/%//'
 0.0

Но как проверить Айоваит значение, превышающее 50 в течение хотя бы одного часа?

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

Если вы захотите пойти по этому маршруту, вы можете найти сар или iostat полезнее YMMV.

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

Ты можешь использовать iostat именно для этого. Просто беги iostat -y 3600 | grep -A 1 avg-cpu

Вышеупомянутая команда будет сообщать каждый час о различных состояниях процессора (простоя, iowait, ecc), а следующий grep экстраполирует только две строки о вас. Очевидно, что перед запуском сценария в производство выполните несколько тестов с меньшим временем ожидания (например, 5 секунд).

РЕДАКТИРОВАТЬ: для solaris вы можете использовать iostat -c 3600 В grep команда будет другой, поэтому вам пришлось проверить себя.