개별 프로세스의 CPU 및 메모리 사용량 모니터링

개별 프로세스의 CPU 및 메모리 사용량 모니터링

AIX 서버에서 단일 프로세스의 CPU 및 메모리 사용량을 모니터링해야 합니다. 프로그램은 하루 3회 진행됩니다. 특정 간격(예: 10분마다)으로 통계를 캡처하는 방법을 찾아야 합니다.

답변1

전반적인 시스템 통계를 수집하는 것이 좋습니다nmon그리고 그것들을 구문 분석nmon-analyzer또는nmon2rrd- 단 하나의 프로세스일지라도. 관련된 내용이 있으면 유용합니다.svmon메모리 사용량을 모니터링하는 데에도 사용할 수 있습니다.

다음은 AIX 프로세스 및 시스템 모니터링에 대한 좋은 기사입니다.

답변2

나는 aix가 gnu/linux와 유사하게 작동한다고 생각합니다. /etc/cron.d/에 파일을 만듭니다. "모니터"라고 부르겠습니다. grep processname해당 부분을 프로세스 이름으로 변경하세요.

# +---------------- minute (0 - 59)
# |  +------------- hour (0 - 23)
# |  |  +---------- day of month (1 - 31)
# |  |  |  +------- month (1 - 12)
# |  |  |  |  +---- day of week (0 - 6) (Sunday=0 or 7)
# |  |  |  |  |
# *  *  *  *  *  user    command to be executed
*/10 *  *  *  *  root    ps aux | grep processname >>/var/log/mylog.log

/var/log/mylog.log에 다음 줄을 추가합니다.

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

루트가 없는 경우 ps aux 앞에 사용자 이름 root를 생략하고 crontab -e 사용자로 시작할 수 있으며 출력은 /var/log/로 리디렉션되어서는 안 되지만 $HOME/을 사용해야 합니다.

답변3

나는 완전한 대본이 아니라 단지 아이디어를 제공하는 것뿐입니다. 요구 사항에 맞게 수정해야 합니다.

CPU 사용량과 메모리 사용량을 모니터링하기 위해 사용하는 명령은 입니다 ps. 나는 깃발을 믿고 지지 -C한다-oAIX섬기는 사람. 그러나 man ps컴퓨터에서 해당 구문을 찾을 수 있습니다.

ps -C program_name -o %cpu,%mem

이제 서버에서 10분마다 6번 실행되게 하기 위해 다음과 같은 스크립트를 넣어보겠습니다. 나는 이것을 1시간 정도 동안 10분마다 모니터링해야 한다고 가정합니다.

i=6
filename=$(echo memory_monitoring_`date +%F_%T`)
touch $filename
while [ $i -ge 1 ]
do
    sleep 600 #sleep for 10 minutes. 
    ps -C program_name -o %cpu,%mem >> "$filename"
    i=$((i-1)) 
done

그래서 기본적으로 위의 스크립트를 사용하여 메모리를 모니터링해야 할 때마다 새 파일을 만듭니다. 그 후 1시간 동안 스크립트를 실행하니 i설정이 6으로 되어 있는 것을 볼 수 있습니다 . sleep 60010분마다 메모리를 모니터링하는 데 사용됩니다.

최적화가 필요한 경우 mail감사 목적으로 사용할 수 있도록 생성된 파일을 자신에게 이메일로 보내는 명령을 추가할 수 있습니다.

설정이 매우 쉽고 cron도움이 되는 많은 온라인 튜토리얼을 찾을 수 있습니다.

관련 정보