OS/AIX::
[ Unix + AIX ] 시스템 메모리 사용량 점검 스크립트 [ svmon 명령어 ]
장피디
2015. 8. 10. 10:38
반응형
출처 : http://estenpark.tistory.com/133
사실 여러가지 방법으로 메모리 확인 방법을 생각 해봤다.
ps -ef -o rssize,comm 으로 전체의 합을 전체 메모리를 나눠서 계산하는 방법을 했지만 정확한 데이터가 나오지 않았다.
관제 대상을 가지고 있는 어떠한 툴로 사용하면 좀 더 정확한 UI형식의 결과물을 볼 수 있을 수 있을 것이다.
소개하려는 명령어는 svmon 명령어 이다.
메모리의 현재 상태에 관련하고 실제 메모리의 스냅샵을 구성하는 것이 아니라 명령어의 인터럽트가 가능한 사용자 레벨에서 수행 가능 하다. 즉 root 권한만 수행 할 수 있는 명령어라고 할 수 있다.
중요한 개념을 잡아야 하는데 그 이유는 svmon명령어는 페이지 별로 통계 해준다는 것이다.
- 1페이지 가상 메모리의 4K 블록
- 1프레임은 실제 메모리의 4K 블록
- 어떠한 명시가 없다면 기본적으로 통계는 4096바이트 메모리 페이지 단위
# svmon
1.
2.
3.
* 수치는 임의대로 적어서 다릅니다.
1.
size inuse free pin virtual
memory 1831616 2028009 5412 391022 1082699
pg space 526500 5021
memory 1831616 2028009 5412 391022 1082699
pg space 526500 5021
2.
work pers clnt
pin 390788 0 234
in use 1082491 0 945518
pin 390788 0 234
in use 1082491 0 945518
3.
PageSize PoolSize inuse pgsp pin virtual
s 4 KB - 1947705 4781 349758 1002187
m 64 KB - 5019 25 2579 5032
s 4 KB - 1947705 4781 349758 1002187
m 64 KB - 5019 25 2579 5032
* 수치는 임의대로 적어서 다릅니다.
- 1번의 실제 메모리 사용 설명
- 전체 사이즈 [ size ] : 1831616
- 페이지 포함 프레임 수 [ inuse ] : 2028009
- 모든 메모리 중 남은 공간(프레임수) [ free ] : 5412
- 고정 페이지의 프레임 수 [ pin ] : 391022
- 가상 영역의 할당된 페이지 수 [ virtual ] : 1082699
- 2번의 실제 메모리의 서브세트
- 작업 세그먼트 페이지를 포함하는 프레임 수 [ work ] : 390788
- 영구 세그먼트 페이지를 포함하는 프레임 수 [ pers ] : 0
- 클라이언트 세그먼트 페이지를 포함하는 프레임 수 [ clnt ] : 234
- in use ( 사용중인 실제 메모리의 서브세트)
- pin(고정된 페이지가 있는 실제 메모리의 서브세트)
- 3번 페이지 공간의 사용을 설명하는 통계
svmon -G
시스템 전체 메모리 사용량 통계 확인
전체 메모리 사이즈는 1831616*4096byte/1024/1024 = 127MB.
Free Memory는 5412*4096/1024/1024 = 41MB
시스템 전체 메모리 사용량 통계 확인
전체 메모리 사이즈는 1831616*4096byte/1024/1024 = 127MB.
Free Memory는 5412*4096/1024/1024 = 41MB
svmon -U root -d
root 사용자가 사용하는 메모리의 내역
root 사용자가 사용하는 메모리의 내역
svmon -C inetd
inetd 데몬에 의해 사용되는 메모리의 통계
inetd 데몬에 의해 사용되는 메모리의 통계
svmon -P (pid)
프로세스 메모리 사용량 통계
프로세스 메모리 사용량 통계
메모리 스왑/실제 메모리 통계 스트립트
#!/usr/bin/csh
# Swap 점검
/usr/sbin/swap -l | /usr/bin/tail -1 |sed 's/MB//g' |awk '{printf"%0.0f\n",100-(($5/$4)*100)}'
# Real Memory 점검
# 계산방법: 100 - ( ( FreeSize / TotSize ) * 100
svmon -G |grep memory |perl -ane 'printf"%0.1f \n", 100 - ( ( $F[3] / $F[1] ) * 100 ) '
# Swap 점검
/usr/sbin/swap -l | /usr/bin/tail -1 |sed 's/MB//g' |awk '{printf"%0.0f\n",100-(($5/$4)*100)}'
# Real Memory 점검
# 계산방법: 100 - ( ( FreeSize / TotSize ) * 100
svmon -G |grep memory |perl -ane 'printf"%0.1f \n", 100 - ( ( $F[3] / $F[1] ) * 100 ) '
- 위의 스크립트를 보면 awk처리와 perl 처리를 두가지 버전으로 만들어 봤다.
- 둘다 장단점은 있지만 확실히 perl로 하는 것이 더 좋다는 생각이 든다.
반응형