top이라는 명령어로 리눅스를 모니터링하다보면
VIRT 와 RES가 있는 것을 볼 수 있다. 


man top 에서 확인해 보니

VIRT  --  Virtual Image (kb)

          The total amount of virtual memory used by the task.  It includes all code, data and shared libraries plus pages that have been swapped out. (Note: you  can define the STATSIZE=1 environment variable and the VIRT will be calculated from the /proc/#/state VmSize field.)

          VIRT = SWAP + RES.


RES  --  Resident size (kb)

          The non-swapped physical memory a task has used.

          RES = CODE + DATA.


요렇게 나온다. 

결론적으로 해당 프로세스에서 물리적인 메모리를 사용하는 크기는 RES 이며,

SWAP 영역에서 사용하는 메모리 + shared + swapped를 합친것이 VIRT 다.


따라서 VIRT 값과 RES 값의 차이가 크다는 이야기는 SWAP 을 쓸 확률이 높다는 의미 인 것으로 보인다. 자바에서는 Shared 메모리의 크기가 그리 크지 않으므로, 만약 VIRT 만 크다면 SWAP 확인해 보고, 애플리케이션에서 도대체 무슨 일이 일어나는지를 잘 째려봐야 할 듯 하다.

어떻게 째려 봐야 할지는 좀 고민 해봐야 할 듯~~~ 

신고
Posted by tuning-java Trackback 0 : Comment 2