我正在使用Solaris(Solaris 10 5/08 s10x_u5wos_10 X86)来运行jboss应用程序。
root@dev3-be3:/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
root@dev3-be3:/proc/24685$ du -sh * | grep G
1.0G as
18G fd
root@dev3-be3:/proc/24685$
root@dev3-be3:/proc/24685$ prstat | grep 24685
24685 root 1041M 991M cpu0 0 0 4:01:35 51% java/200
root@dev3-be3:/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
root@dev3-be3:/proc/24685$
为什么这个/ proc / pid / fd有很高的物理内存?关闭服务器后,这会被清除。
答案 0 :(得分:2)
使用ps
或prstat
计算进程使用的内存量。在du
伪文件系统上使用/proc
充其量是可疑的。
答案 1 :(得分:1)
在/ proc(这是一个虚拟文件系统)上运行'du'是没有意义的。
在其手册页proc(4)中找到了很好的/ proc描述。
如果你真正的问题是“为什么我的java应用程序使用了这么多内存?” 然后你最好检查一下联机帮助页,看看分析器有什么影响 有内存使用。您还应该检查您正在使用的java版本 (在以后的版本中,内存使用率有了很大提高)。这可能是值得的 看着堆(参见pmap)。
那么你应该问你的开发人员他们在做什么以及是否全部 必要的。