在CentOS上导出JVM内存信息

首先看下Tomcat的进程Id:
1
2
[root@iZ25Z ~]# ps aux | grep java
www       2111  4.0 23.5 1637648 452756 ?      Sl   10:12   4:35 /usr/java/jdk1.7.0_80/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties ...  
可以看到Tomcat的进程Id是2111, 然后用JDK自带工具jmap来导出整个JVM 中内存信息:
# jmap -dump:format=b,file=文件名  [pid]

jmap -dump:format=b,file=mm.hprof 2111
然而我们却得到了这个提示:
jmap -dump:format=b,file=mm.hprof 2111
2111: Unable to open socket file: target process not responding or HotSpot VM not loaded
The -F option can be used when the target process is not responding
这是因为我是以root这个用户执行的这个语句,但我的tomcat进程是以www用户运行的(用 ps aux | grep java 便能看到)。我们可以在机器上找到 /tmp/hsperfdata_$USER/$PID一个这样的文件,当我们执行jmap出现上述信息时,先检查执行该命令的用户是否和hsperfdata_$USER这个文件所属的用户一致,如果不一致,切换成一致再执行即可,或者根据提示,直接加个 -F 参数即可:
jmap -F-dump:format=b,file=mm.hprof 2111
man page对这个选项的说明是:
-F Force. Use with jmap -dump or jmap -histo option if the pid does not respond. The live suboption is not supported in this mode.
转载请注明出处,本文地址:http://www.iiilab.com/article/6
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值