AIX 서버의 CPU 사용량 모니터링

AIX 서버의 CPU 사용량 모니터링

AIX 서버에서 CPU 사용량을 모니터링하기 위해 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

그러나 CPU 사용량이 90%보다 높으면 CPU를 사용하는 상위 5개 프로세스를 나열해야 합니다.

어떻게 이를 달성할 수 있나요?

답변1

열을 제한하고 가장 높은 CPU 사용량을 기준으로 먼저 정렬한 다음 상위 5개까지 잘라내어 head -6상당히 읽기 쉬운 방식으로 상위 5개를 나열 할 수 있습니다(헤더도 포함하려고 하므로 를 사용).

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]

topGNU 의 배치 모드( ) 를 살펴볼 수도 있습니다 -b.

답변2

딥 다이빙의 경우 가장 좋은 방법은 달리는 것입니다.

tprof -skex sleep 10

이렇게 하면 어떤 프로세스가 높은 CPU를 사용하고 있는지 자세히 설명하는 보고서가 제공되고 기능 및 공유 라이브러리 사용량을 자세히 살펴볼 수 있습니다.

답변3

topas 출력과 일치하는 다음 명령을 사용할 수 있습니다.

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

관련 정보