2013-10-31 2 views
0

저는 Solaris (Solaris 10 5/08 s10x_u5wos_10 X86)를 사용하여 jboss 응용 프로그램을 실행하고 있습니다.Solaris/proc 상위 실제 메모리 사용량

[email protected]:/proc/17197$ ps -ef | grep java 
    root 24685 24670 2 12:13:46 pts/10 225:54 java -Dprogram.name=run_with_profiler.sh -server -Xdebug -Xnoagent -Xrunjdwp:tr 

[email protected]:/proc/24685$ du -sh * | grep G 
1.0G as 
    18G fd 
[email protected]:/proc/24685$ 

[email protected]:/proc/24685$ prstat | grep 24685 
24685 root  1041M 991M cpu0  0 0 4:01:35 51% java/200 

[email protected]:/proc/24685$ df -k 
Filesystem   kbytes used avail capacity Mounted on 
/     124960305 110368903 13341799 90% /
/dev     124960305 110368903 13341799 90% /dev 
/export/home   124960305 110368903 13341799 90% /export/home 
/lib     124960305 110368903 13341799 90% /lib 
/opt     124960305 110368903 13341799 90% /opt 
/platform   124960305 110368903 13341799 90% /platform 
/sbin    124960305 110368903 13341799 90% /sbin 
/usr     124960305 110368903 13341799 90% /usr 
/usr/local   124960305 110368903 13341799 90% /usr/local 
proc      0  0  0  0% /proc 
ctfs      0  0  0  0% /system/contract 
mnttab      0  0  0  0% /etc/mnttab 
objfs      0  0  0  0% /system/object 
swap     6115848  272 6115576  1% /etc/svc/volatile 
/usr/lib/libc/libc_hwcap1.so.1 
        124960305 110368903 13341799 90% /lib/libc.so.1 
fd       0  0  0  0% /dev/fd 
swap     6132272 16696 6115576  1% /tmp 
swap     6115588  12 6115576  1% /var/run 
192.168.150.32:/sftp 461928730 38771266 423157464  9% /sftp 
[email protected]:/proc/24685$ 

왜이/proc/pid/fd의 물리적 메모리가 높습니까? 이것은 서버를 종료 한 후에 지워집니다.

답변

2

ps 또는 prstat을 사용하면 프로세스에서 사용중인 메모리 양을 파악할 수 있습니다. 의사 파일 시스템 /procdu을 사용하는 것이 가장 좋습니다.

1

/proc (가상 파일 시스템)에서 'du'를 실행하는 것은 무의미합니다.

해당 proc (4) 맨 페이지에/proc에 대한 설명이 있습니다.

"Java 응용 프로그램이 너무 많은 메모리를 사용하는 이유는 무엇입니까?" 그런 다음 맨페를 확인하여 프로파일 러가 메모리 사용에 미치는 영향을 확인하십시오. 을 사용중인 Java 버전을 확인해야합니다 (메모리 사용이 이후 릴리스에서 크게 향상되었습니다). 도 힙을 살펴볼 가치가 있습니다 (pmap 참조).

그러면 개발자에게 수행중인 작업과 모든 작업이 필요한지 여부를 문의해야합니다. .