最近项目发现了服务有内存泄漏的问题,但是在jvm上并没有配置即jvm没有配置 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heapdump.hprof 这两个参数,导致在发生了oom后只能看到日志中有OOM异常,其他的并不能分析出来,等监控到的时候发现进程已经成了僵尸进程,根本没法通过jmap导出dump。 为了模拟和分析问题在dev环境将-Xmx -XX:MaxMetaspaceSize(我是jdk1.8)都进行了缩小为了重现问题,接下来想监控oom的过程,于是就想用jvisual vm连接到jetty服务器上去进行jvm的监控。
经过查看jetty的官方文档, jetty-jmx文档 远程链接需要设置几个参数,在此列一下: 由于我使用的外置的jetty,所以在start.ini中加入如下配置:
主要作用就是启用jmx和jmx-remote两个module,然后通过`jetty.jmxrmihost`和`jetty.jmxrmiport`设置服务器的ip抵制和要远程链接端口,需要注意的是这里的端口一定是开了防火墙的,否则访问不到,这种方法是没有使用认证的方式(在测试环境内网无所谓,但是在外网的话建议时候带认证方式的连接方法),也可以参考官网使用认证的方式进行连接。保存配置重启jetty服务
可以先通过telnet进行测试连通性,如果没问题的话可以先打开jconsole(jdk的安装目录/bin/jconsole.exe)或者jvisualvm(jdk的安装目录/bin/jvisualvm.exe) jvisualvm也是一样的道理,点击远程,添加jmx连接即可,此时jvm的使用轻咳就一目了然了。 |
原文地址:https://blog.csdn.net/loveuserzzz/article/details/131624954
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://www.msipo.com/article-1223.html 如若内容造成侵权/违法违规/事实不符,请联系MSIPO邮箱:3448751423@qq.com进行投诉反馈,一经查实,立即删除!
Copyright © 2024, msipo.com