AIX 서버에서 단일 프로세스의 CPU 및 메모리 사용량을 모니터링해야 합니다. 프로그램은 하루 3회 진행됩니다. 특정 간격(예: 10분마다)으로 통계를 캡처하는 방법을 찾아야 합니다.
답변1
전반적인 시스템 통계를 수집하는 것이 좋습니다nmon
그리고 그것들을 구문 분석nmon-analyzer
또는nmon2rrd
- 단 하나의 프로세스일지라도. 관련된 내용이 있으면 유용합니다.svmon
메모리 사용량을 모니터링하는 데에도 사용할 수 있습니다.
다음은 AIX 프로세스 및 시스템 모니터링에 대한 좋은 기사입니다.
- AIX 7 메모리 성능 최적화: 2부- 메모리 사용량 모니터링(developerWorks)
- AIX에서 메모리 사용량 분석(UNIX.COM);
- AIX 실용 가이드: 메모리(AIX 시스템 관리자);
- AIX 성능 도구(developerWorks 파워 커뮤니티);
답변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
한다-o
AIX섬기는 사람. 그러나 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 600
10분마다 메모리를 모니터링하는 데 사용됩니다.
최적화가 필요한 경우 mail
감사 목적으로 사용할 수 있도록 생성된 파일을 자신에게 이메일로 보내는 명령을 추가할 수 있습니다.
설정이 매우 쉽고 cron
도움이 되는 많은 온라인 튜토리얼을 찾을 수 있습니다.