docker使用jconsole远程监控jvm

在java 程序研发过程中,常常会对已经完成的java程序进行检测和分析,如何查看开发的java程序内存是否有泄漏的风险?

众所周知,java程序是运行在jvm虚拟机上的,如果java程序写的有问题,导致内存一直占用GC回收不掉,那么这个程序运行一段时间后jvm会内存溢出,从而导致项目崩溃。为了检测开发的java程序 jvm内存是否有泄漏,这里我们使用的是  jconsole.exe 。

jconsole.exe 我使用的是jdk1.8 bin目录下的。见下图(1)

图(1)

如何进行远程连接 监控 测试环境  和 开发环境的程序是否有内存泄漏的情况。

介绍一下项目背景

1.docker环境  host模式 启动 java应用
2.java应用使用springboot框架开发。

重点来了!
创建容器时候的命令如下:



```

docker run -d --name <容器名称> \

--net=host \        //这里以host模式创建容器 即 和容器共用一个网络环境

-v /data/app/XXX:/root/ \    //挂载路径

-e TZ="Asia/Shanghai" \    //解决时区问题

docker.io/isuper/java-oracle \    //此处使用的是oracle下的jdk  当然也可以用openJDK

java -Dfile.encoding=UTF8 -Dcom.sun.management.jmxremote.ssl=false \      // 步骤一

-Dcom.sun.management.jmxremote.port=\                                      // 步骤二

-Dcom.sun.management.jmxremote.authenticate=false \                      // 步骤三

-Dcom.sun.management.jmxremote.ssl=false \                                  // 步骤四

-Dcom.sun.management.jmxremote.rmi.port=\                        // 步骤五

-Djava.rmi.server.hostname=远程ip\                                                // 步骤六

-jar -Xms64M -Xmx128M -Xmn20M /root/yourApp.jar                      //步骤七

```






注意:
上面两处的  <port>  需要一致  远程ip :是你要连接监控的机器ip
我这里启动的image是构建dockerfile的后的image。具体按自己实际情况替换掉路径

步骤 1-7 是常规的启动jar程序的main 方法。
这里远程连接是没有使用密码的。使用密码 还没有试过,后面有时间探究出来了再完善此文章。

现在打开本机的jdk1.8目录 打开 jconsole.exe 图(1),随后出现下图
图(2):

图(2)


选择远程连接  输入  ====>  远程ip:port  ==========>>点击连接 如下图

图(3)

图(3)

Done!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、基本操作 1.JConsole是什么 从Java 5开始引入了JConsole。JConsole是一个内置Ja...
    蓝慧云天阅读 8,799评论 0 8
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,981评论 19 139
  • jstack-- 如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java sta...
    not_null阅读 8,011评论 2 62
  • 第一次写一个人,一些手足无措不知如何下笔。 我的童年,四岁以前的记忆,几乎都不记得了。能回想起的都是有了弟弟之后的...
    ceciliaruan阅读 699评论 6 8