Мониторинг использования ЦП на серверах AIX

Мониторинг использования ЦП на серверах AIX

Для мониторинга загрузки ЦП на сервере AIX я использую следующий скрипт, который выполняется каждые 10 минут.

lparstat 2 10 > cpu
usage=$(tail -10 cpu | awk 'BEGIN {sum=0;} {sum+=$4} END{print int(100-sum/10)}')


if [[ $usage -ge 90 ]]; then
# mail the error and cpu file to admin
# displaying this for testing purposes
echo "CPU usage off the charts!!!"
cat cpu
fi

Однако в случае, если загрузка ЦП превышает 90%, мне необходимо составить список 5 основных процессов, использующих ЦП.

Как этого добиться?

решение1

Вы можете составить список из 5 лучших в достаточно удобном для чтения виде, ограничив количество столбцов, отсортировав их сначала по наибольшей загрузке ЦП, а затем усекая до первых 5 (используя head -6, поскольку мы также хотим включить заголовки):

ps -eo pcpu,pid,args | sort -k 1 -r | head -6

Вывод выглядит примерно так:

%CPU   PID COMMAND
 2.0 30531 -bash
 0.0 30673 head -6
 0.0 30672 sort -k 1 -r
 0.0 30671 ps -eo pcpu,pid,args
 0.0 30670 [flush-253:0]

Возможно, вам также захочется рассмотреть topпакетный режим GNU ( -b).

решение2

Для глубокого погружения лучшим вариантом будет бег.

tprof -skex sleep 10

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

решение3

Вы можете использовать команду ниже, она будет соответствовать выводу topas

ps -ef | egrep -v "STIME|$LOGNAME" | sort +3 -r | head -n 15

Связанный контент