Docker java程序jvm分析

本文介绍了如何在Docker容器内进行Java(JDK 1.8)JVM分析,包括如何将tools.jar、jstat和jmap复制到容器内部。作者通过jstat观察到大量YGC事件,推测可能由于新生代与老年代内存比例问题导致,并讨论了Java 9后的内存限制策略。此外,还解释了JVM统计列的含义,以及如何生成heapdump文件以进一步分析。
摘要由CSDN通过智能技术生成

   由于我项目制作的java运行镜像都是基于anapsix/alpine-java,这个是目前最小的java镜像,jdk的版本是1.8的。anapsix/alpine-java是一个jre的镜像,如果你要做jvm分析,需要准备tools.jar,jstat,jmap文件。下面就是我的实际操作步骤。

一、准备tools.jar,jstat,jmap 并拷贝到docker容器里面

     我这里只用到jstat和jmap,jstat用于在容器里面直接观察jvm状况。jmap用于生成heapdump文件,生成的heapdump文件,通过MemoryAnalyzer工具分析java堆里面的对象。

  为什么需要用到tools.jar,其实tools.jar包装了jstat,jmap,jinfo等需要的内容。

[ellis@localhost bin]# find /usr -name java
/usr/local/share/swig/3.0.0/java
/usr/java
/usr/java/jdk1.8.0_181-amd64/jre/bin/java
/usr/java/jdk1.8.0_181-amd64/bin/java
/usr/bin/java

[ellis@localhost bin]# docker container ls|grep processor
22a5379ac905        my-registry:5000/processor:lastest                                "/bin/sh ./start…"   17 hours ago        Up 17 hours         14051/tcp                                             dev-smarthome-processor.1.mosm97bkvnnsr4v3dku7vjrhk

[ellis@l
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值