svmon
이 명령은 가상 메모리의 스냅샷을 캡처합니다. svmon을 사용하여 일정 간격으로 프로세스의 메모리 사용량에 대한 스냅샷을 캡처하면 메모리 사용량을 모니터할 수 있습니다.
svmon을 다음과 같이 사용하면 프로세스 메모리 사용량에 대한 정기적인
스냅샷이 생성되고 파일에 출력 내용이 기록됩니다.
svmon -P [process id] -m -r -i [interval] > output.file출력 내용은
다음과 같습니다. Pid Command Inuse Pin Pgsp Virtual 64-bit Mthrd
25084 AppS 78907 1570 182 67840 N Y
Vsid Esid Type Description Inuse Pin Pgsp Virtual Addr Range
2c7ea 3 work shmat/mmap 36678 0 0 36656 0..65513
3c80e 4 work shmat/mmap 7956 0 0 7956 0..65515
5cd36 5 work shmat/mmap 7946 0 0 7946 0..65517
14e04 6 work shmat/mmap 7151 0 0 7151 0..65519
7001c d work shared library text 6781 0 0 736 0..65535
0 0 work kernel seg 4218 1552 182 3602 0..22017 :
65474..65535
6cb5a 7 work shmat/mmap 2157 0 0 2157 0..65461
48733 c work shmat/mmap 1244 0 0 1244 0..1243
cac3 - pers /dev/hd2:176297 1159 0 - - 0..1158
54bb5 - pers /dev/hd2:176307 473 0 - - 0..472
78b9e - pers /dev/hd2:176301 454 0 - - 0..453
58bb6 - pers /dev/hd2:176308 254 0 - - 0..253
cee2 - work 246 17 0 246 0..49746
4cbb3 - pers /dev/hd2:176305 226 0 - - 0..225
7881e - pers /dev/e2axa702-1:2048 186 0 - - 0..1856
68f5b - pers /dev/e2axa702-1:2048 185 0 - - 0..1847
28b8a - pers /dev/hd2:176299 119 0 - - 0..118
108c4 - pers /dev/e2axa702-1:1843 109 0 - - 0..1087
24b68 f work shared library data 97 0 0 78 0..1470
64bb9 - pers /dev/hd2:176311 93 0 - - 0..92
74bbd - pers /dev/hd2:176315 68 0 - - 0..67
3082d 2 work process private 68 1 0 68 65287..65535
10bc4 - pers /dev/hd2:176322 63 0 - - 0..62
50815 1 pers code,/dev/hd2:210969 9 0 - - 0..8
44bb1 - pers /dev/hd2:176303 7 0 - - 0..6
7c83e - pers /dev/e2axa702-1:2048 4 0 - - 0..300
34a6c a mmap mapped to sid 44ab0 0 0 - -
70b3d 8 mmap mapped to sid 1c866 0 0 - -
5cb36 b mmap mapped to sid 7cb5e 0 0 - -
58b37 9 mmap mapped to sid 1cb66 0 0 - -
1c7c7 - pers /dev/hd2:243801 0 0 - -이에 대한 설명은 다음과 같습니다.
- Vsid
- 세그먼트 ID
- Esid
- 세그먼트 ID: 가상 메모리 세그먼트에 해당합니다. Esid는 가상 메모리 관리자의 세그먼트에 맵핑됩니다. JVM에서 사용 중인 메모리 모델을 이해하면 이러한 값을 사용하여 원시 또는 Java™ 힙에서 메모리를 할당하거나 커미트하는지 여부를 판별할 수 있습니다.
- 유형
- 세그먼트의 유형을 식별합니다.
- pers
- 지속적 세그먼트를 표시합니다.
- 작업
- 작업 세그먼트를 나타냅니다.
- clnt
- 클라이언트 세그먼트를 나타냅니다.
- mmap
- 맵핑된 세그먼트를 나타냅니다. 대형 메모리 모델 프로그램의 mmap을 사용하여 할당된 메모리입니다.
- 설명
세그먼트가 지속적 세그먼트인 경우, 연관된 파일의 i-node 수 및 디바이스 이름이 표시됩니다.
세그먼트가 지속적 세그먼트이고 로그와 연관되어 있는 경우, 문자열 로그가 표시됩니다.
세그먼트가 작업 세그먼트인 경우, svmon 명령이 세그먼트의 역할을 결정하려 합니다.- kernel
- 세그먼트는 커널에서 사용됩니다.
- 공유 라이브러리
- 세그먼트는 공유 라이브러리 텍스트 또는 데이터에 사용됩니다.
- 프로세스 개인
- 프로세스의 개인용 데이터입니다.
- shmat/mmap
- 대형 메모리 모델 프로그램을 사용 중이므로, 프로세스의 개인용 데이터에 사용되는 공유 메모리 세그먼트입니다.
- 사용 중
- 이 세그먼트의 실제 메모리에 있는 페이지의 수입니다.
- 고정
- 이 세그먼트에서 핀된 페이지의 수입니다.
- Pgsp
- 이 세그먼트에 의한 공간 페이징에 사용된 페이지의 수입니다. 이 값은 작업 세그먼트에만 관련됩니다.
- Addr Range
- 이 세그먼트에 할당된 페이지의 범위입니다. Addr Range가 각 세그먼트에 할당된 페이지의 범위를 나타내는 반면, Inuse는 커미트된 페이지의 수를 나타냅니다. 예를 들어, 아직 사용되지 않은 페이지가 할당되었으므로 Addr Range가 Inuse보다 많은 페이지를 상세히 나타냅니다.