Solaris / proc高物理内存使用率

时间:2013-10-31 09:26:03

标签: solaris-10

我正在使用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有很高的物理内存?关闭服务器后,这会被清除。

2 个答案:

答案 0 :(得分:2)

使用psprstat计算进程使用的内存量。在du伪文件系统上使用/proc充其量是可疑的。

答案 1 :(得分:1)

在/ proc(这是一个虚拟文件系统)上运行'du'是没有意义的。

在其手册页proc(4)中找到了很好的/ proc描述。

如果你真正的问题是“为什么我的java应用程序使用了这么多内存?” 然后你最好检查一下联机帮助页,看看分析器有什么影响 有内存使用。您还应该检查您正在使用的java版本 (在以后的版本中,内存使用率有了很大提高)。这可能是值得的 看着堆(参见pmap)。

那么你应该问你的开发人员他们在做什么以及是否全部 必要的。