使⽤docker查看jvm状态,在docker中使⽤jmap,jstat Docker中查看JVM的信息:
1.    列出docker容器:docker ps
2.    标准输⼊和关联终端:docker exec -it 容器ID  bash
3.    查出java进程: ps – ef | grep java
4.    统计gc信息统计: jstat –gcutil 466 3000 每三秒打印⼀次
如果CPU飙太⾼,可以参考《》
⽰例1--jstack查看线程堆栈信息
查看正在运⾏的容器id
docker ps
这⾥我运⾏的是⼀个spring boot应⽤,docker容器id如下
使⽤docker exec进⼊Docker容器,命令如下
docker exec -it be6203473016 /bin/sh
be6203473016 是CONTAINER ID
运⾏jps,已经能看到刚才启动的spring boot应⽤了
这时就可以使⽤jstat,jmap等根据进程id查看程序状态了,以下是我运⾏jstack查看的堆栈信息
⽰例2--jmap导出内存堆栈信息
jmap -dump:format=b,file=/logs/test.bin 9
(上⾯的logs⽬录需要你⾃⼰在docker容器⾥个已存在的⽬录啊)
导出jmap dump的⽂件,进⼀步分析,copy docker中的⽂件到宿主机的当前⽬录,命令如下:
docker cp be6203473016:/logs/test.bin .
test.bin 是我刚才⽤jmap -dump⽣成的⽂件
be6203473016是docker 容器id
在⽤sz从宿主机下载到⼯作电脑,命令如下:
sz test.bin
⽰例3--jstat统计gc回收信息
jstat –gcutil 93000
docker进入容器
每三秒打印⼀次
⽰例4--jinfo统计gc回收信息

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。