系统集成nmonnmon analyser

nmon命令显示与使用analyzer分析后数据不一致的问题

最近在分析一个java内存的问题,发现使用nmon命令查看进程内存占用情况和采集数据用nmon analyzer进行分析数据上会有差异。

nmon m 4 结果如下:

nmon.png

可以看到PID 1704276的Res Set为1534612k,物理内存为30G,所以RAM USE 1.5/30=0.05是准确的。

但nmon数据用analyzer分析后对应的数据如下:

                                                               

TimePID%CPU%Usr%SysThreadsSizeResTextResDataCharIO%RAMPagingCommand
2017/3/9 15:02170427629.4426.323.12172177951612817794405312022.6286java

%RAM为22.6%,这个数值是如何得出的,是由于nmon版本和分析工具版本的问题导致的?

另外这个java进程的启动参数为-Xms8g -Xmx8g -XX:PermSize=512m,先不考虑non-heapsize部分,heapsize部分的8G在启动后不应该运行在内存中吗,为什么RSS看到的仅为1.53G呢?难道nmon的res set并不是RSS?请专家不吝赐教,谢谢

参与3

1同行回答

yangjianxvyangjianxv部门总经理成方金融科技有限公司
首先,连名字都不一样,那么含义一定不一样。第二,在aix上,不同命令显示中的 相同的词(比如size),含义也不一样。因为这些工具都是分别开发的。第三,nmon命令中     Res Size            The sum of real-memory data...显示全部

首先,连名字都不一样,那么含义一定不一样。

第二,在aix上,不同命令显示中的 相同的词(比如size),含义也不一样。因为这些工具都是分别开发的。

第三,nmon命令中     Res Size

            The sum of real-memory data (resident set) and real-memory (resident set) text size of the process.进程数据段和代码段在物理内存中的数量。

        ps命令中RSS

            (v flag) The real-memory (resident set) size of the process (in 1 KB units).明显解释就不一样

      进程还有共享段、栈段、堆段、未初始化的数据段等等。

    关于内存的段,可以参考我的文章:

    http://www.aixchina.net/Article/160989

    每个参数都有它的含义,一定要搞清原理、查清命令中的具体含义。比如man ps,man topas看看具体解释。

  

收起
银行 · 2017-03-10
浏览3439

提问者

hashei
系统工程师万达信息股份有限公司
擅长领域: 中间件WAS中间件系统改造

问题来自

相关资料

相关文章

问题状态

  • 发布时间:2017-03-10
  • 关注会员:2 人
  • 问题浏览:7525
  • 最近回答:2017-03-10
  • X社区推广