Grep определенного процесса в Linux
Находимся в Linux. Грепаю определенный процесс из top
top | grep soffbin
Что бы ограничить единоразово вывод в консоль результата, грепаю с ключами
top -b -n 1 | grep soffbin
Делаю еще лучше результат, вывожу через awk только 2 строчки ( отсеиваю лишнее )
top -b -n 1 | grep soffbin | awk '{print $9,$12}'
Результат будет примерно такой: 49.0 soffbin
Это покажет мне, что в данный момент соффбин грузит ЦПУ на 49%.
Вопрос: возможно ли сделать так: Условие: софбин грузин цпу < 40% и что самое главное более 10 минут. Тогда это поможет отсеять кратковременную нагрузку из за открытия допустим огромного файла и выявить некорректно поведение процесса в системе.
UPD, еще чуть улучшил вывод:
top -b -n 1 | grep soffbin | awk '{if ($9 > 40.0) print$1, $9,$12}'
Теперь будет условие, что нагрузка больше 40% и вывод с PID процесса:
9912 44.0 soffbin
Но опять же не понимаю, возможно ли задать последнее необходимое условие. Что бы данный процесс грузил более 40% хотя бы от 10 мин
Ответы (1 шт):
top может выводить данные в "кумулятивном" режиме. Для этого используется ключик -S. Для Ваших целей можно анализировать, например, суммарное процессорное время, потраченное процессом между такими запусками top. Это даст понимание, какой процесс "слишком" активен в этот промежуток времени. Но вообще согласен с предыдущим автором, выбор top в качестве инструмента такого анализа вызывает некоторые сомнения.