在VisualVm分析结果和Linux顶级统计数据之间,java程序的内存使用情况大不相同

时间:2016-03-20 06:24:05

标签: java linux memory profiling

我在centos7 64bit盒子(总共512Mb内存)上运行了以下内存参数的java程序:

-Xms80M
-Xmx128M
-XX:MaxPermSize=64M
-XX:MaxDirectMemorySize=32M

从jvisualvm配置文件中我可以看到它的内存使用量是最大130M(最大使用堆+最大使用的Perm),但是从linux pmap命令或top命令它说它使用了大约310M,这占用了我的大部分服务器物理内存:

KiB Mem :   500840 total,     7700 free,   354256 used,   138884 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   109924 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
16844 root      20   0 1017504 311272  10388 S  0.7 62.1   4:43.65 java

我想知道为什么pmap(top)统计数据与我的分析结果之间存在巨大差异,哪些是准确的?

0 个答案:

没有答案