문서유형ㅣ장애해결
분야ㅣ모니터링/점검
적용제품버전ㅣ5SP1FS01, 5SP1FS02, 5SP1FS03, 5SP1FS04, 5SP1FS06, 6FS01, 6FS02, 6FS03, 6FS04, 6FS05, 6FS06, 6FS07, 6FS07PS, 7FS01, 7FS02, 7FS02PS
문서번호ㅣTMOTS019
현상
ps aux나 top으로 모니터링 시, 실제 메모리 사용량보다 크게 나오는 경우가 있습니다.
예시) 각 메모리의 VSZ나 RSS가 커서 전부 합치면 서버 메모리의 몇배가 되는 정확하지 않는 값이 출력
[tibero1@prolinux1 sql]$ ps aux --sort -rss USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND tibero1 1766 0.0 1.9 3103216 73776 pts/0 Sl 00:01 0:01 tbsvr_FGWP000 -t NORMAL -SVR_SID DB1_node1 (중략) tibero1 1768 0.0 0.6 2495088 23208 pts/0 Sl 00:01 0:00 tbsvr_PEWP000 -t NORMAL -SVR_SID DB1_node1 tibero1 1773 0.0 0.6 2495088 23052 pts/0 Sl 00:01 0:00 tbsvr_PEWP005 -t NORMAL -SVR_SID DB1_node1 tibero1 1769 0.0 0.6 2495088 23008 pts/0 Sl 00:01 0:00 tbsvr_PEWP001 -t NORMAL -SVR_SID DB1_node1 tibero1 1772 0.0 0.6 2495088 23000 pts/0 Sl 00:01 0:00 tbsvr_PEWP004 -t NORMAL -SVR_SID DB1_node1
원인
Tibero는 공유 메모리를 사용하므로 ps나 top 등 에서 메모리 사용 시, 공유 메모리 영역을 같이 합쳐서 출력됩니다. 이로 인해 실제 사용된 메모리 뿐만 아니라 공유 메모리까지 합산된 메모리 사용 크기가 나오게 됩니다.
해결
linux , solaris 환경 내에서는 pmap / aix : procmap 을 통해 실제 메모리 사용 분포 및 공유 메모리를 확인 할 수 있습니다.
메모리 확인 예시
[tibero1@prolinux1 sql]$ pmap -x 1766 1766: tbsvr_FGWP000 -t NORMAL -SVR_SID DB1_node1 Address Kbytes RSS Dirty Mode Mapping 0000000000400000 152244 26396 0 r-x-- tbsvr 0000000009aad000 220 216 4 r---- tbsvr 0000000009ae4000 3160 2604 96 rw--- tbsvr 0000000009dfa000 884 196 196 rw--- [ anon ] (중략) 00007fbfeeff7000 32 0 0 ----- zero (중략) 00007fbff4197000 2097152 32576 32576 rw-s- [ shmid=0x0 ] 00007fc074197000 1776 1424 0 r-x-- libc-2.28.so (중략) ffffffffff600000 4 0 0 r-x-- [ anon ] ---------------- ------- ------- ------- total kB 3103220 75028 42332
00007fbff4197000 주소의 2097152 size는 shmid=0x0 의 공유 메모리 입니다. Total에서 해당 값을 뺀 나머지가 실제로 프로세스가 별도 사용 중인 공간입니다.
또한 공유메모리가 실제로 id 0 으로 있고(shmid), 사이즈가 동일 (bytes=2147483648 -> 2097152 KB) 및 15개 프로세스가 공유 중(nattch 15) 임을 아래와 같이 확인할 수 있습니다.
[tibero1@prolinux1 sql]$ ipcs -m ------ Shared Memory Segments -------- key shmid owner perms bytes nattch status 0x1553710c 0 tibero1 640 2147483648 15
주의티맥스티베로 기술지원의 가이드를 통해 수행합니다.