欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > 分析Docker容器Jvm 堆栈GC信息

分析Docker容器Jvm 堆栈GC信息

2025/5/14 19:32:24 来源:https://blog.csdn.net/now19930616/article/details/147917311  浏览:    关键词:分析Docker容器Jvm 堆栈GC信息
# 打印jvm启动参数
docker exec -ti <容器名> jcmd 1 VM.flags-XX:CICompilerCount=3 -XX:InitialHeapSize=1073741824 -XX:MaxHeapSize=2147483648 -XX:MaxMetaspaceSize=157286400 -XX:MaxNewSize=715653120 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=357564416 -XX:OldSize=716177408 -XX:ThreadStackSize=512 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC-XX:InitialHeapSize	1GB (1073741824)	JVM 启动时初始堆大小
-XX:MaxHeapSize	2GB (2147483648)	堆内存最大限制(​​已占满容器 2GB 内存的 100%​​,风险极高!)
-XX:MaxMetaspaceSize	150MB (157286400)	元空间(Metaspace)上限
-XX:MaxNewSize	~682MB (715653120)	年轻代(Young Gen)最大值
-XX:+UseParallelGC	启用	使用 Parallel Scavenge 垃圾回收器(适合吞吐量优先场景)# 打印GC信息
docker exec -it <容器名> jstat -gc 1 1s# 输出堆栈信息
docker exec -ti <容器名> jmap -dump:live,format=b,file=/heap.hprof 1
docker cp <容器名>:/heap.hprof .# 手动执行gc  
docker exec -ti <容器名> jcmd 1 GC.run# 打印GC信息
docker exec -it <容器名> jstat -gc 1 1s
# 堆栈是否正常
docker exec -it <容器名> jstat -gcutil 1 1s# 使用scp将堆栈信息下载到本地 或者 其他工具可以直接拖拽

下载 eclipse mat
https://mirrors.bfsu.edu.cn/eclipse/mat/

我下载的是 https://mirrors.bfsu.edu.cn/eclipse/mat/1.16.0/rcp/  jdk最低版本为17 在下载完成后解压,修改配置文件

打开 MemoryAnalyzer.ini 在 -vmargs 上面新增 

-vm
D:/Program Files/Java/jdk-17.0.14/bin/javaw.exe整体内容如下-startup
plugins/org.eclipse.equinox.launcher_1.6.900.v20240613-2009.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.2.1100.v20240722-2106
-vm
D:/Program Files/Java/jdk-17.0.14/bin/javaw.exe
-vmargs
--add-exports=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED
-Xmx1024m

双击运行 MemoryAnalyzer.exe,导入下载好的 heap.hprof

查看内存占用信息

点击泄漏报告,会自动生成对应的报告,可以具体到某行代码,分析内存占用居高的问题

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词