jvm排查
AI-摘要
KunKunYu GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
jvm排查的jump日志
[TOC]
1 linux上查看jvm GC详情并获取jvm当前dump文件
通过命令行:
jstat -gc [pid] [刷新频率ms]
其中pid为要查看的java进程的id,刷新频率为每个多少毫秒刷新一次GC情况。显示内如如下图:
上图中是查看进程id为12711的Java项目,每隔1秒即1000毫秒刷新一次。
参数说明:
- 1、S0C 和 S1C:Survivor(幸存区) 0/1区的容量(单位为KB);
- 2、S0U 和 S1U:Survivor(幸存区) 0/1区目前已使用的空间(单位为KB);
- 3、EC:年轻代中Eden(伊甸园)的容量(单位为KB);
- 4、EU:年轻代中Eden(伊甸园)目前已使用空间(单位为KB);
- 5、OC:年老代的容量(单位为KB);
- 6、OU:年老代目前已使用的空间(单位为KB);
- 7、MC:元空间(方法区)的容量(单位为KB);
- 8、MU:元空间(方法区)目前已使用空间(单位为KB);
- 9、CCSC:压缩类空间的容量(单位为KB);
- 10、CCSU:压缩类空间目前已使用空间大小(单位为KB);
- 11、YGC:年轻代垃圾回收次数;
- 12、YGCT:年轻代垃圾回收消耗时间(单位为秒);
- 13、FGC:年老代垃圾回收次数;
- 14、FGCT:年老代垃圾回收消耗时间(单位为秒);
- 15、GCT:垃圾回收消耗总时间(单位为秒)。
1.1 linux获取jvm当前dump文件
命令行为:
jmap -dump:file=[文件名] [pid]
然后等待生成dump文件,生成的dump文件就在当前目录下。如下图:
然后就可以下载到本地,用本地jdk里自带的jvisualvm来解析文件。
在用本地的jvisualvm解析之前,先双击打开jvisualvm.exe,然后点击【工具】,选择【插件】,安装所需插件,如下图:
然后在可用插件里找到Visual GC插件,进行安装,如下图(这里我事先已经安装好了):
安装完后,重新打开jvisualvm.exe,然后点击左上角的【文件】,选择【装入】,装入刚才下载到本地的dump文件,这里的装入类型选择【堆 Dump】类型,如下图所示:
2 Linux服务器下JVM堆栈信息dump及问题排查
2.1 dump 方法栈信息
jstack $pid > /home/$pid/jstack.txt
2.2 dump jvm内存使用情况
jmap -heap $pid > /home/$pid/jmapheap.txt
2.3 dump jvm二进制的内存详细使用情况
(效果同在Tomcat的catalina.sh中添加 set JAVA_OPTS=%JAVA_OPTS% -server -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/heapdump 此文件需要借用内存分析工具如:Memory Analyzer (MAT)来分析)
jmap -dump:format=b,file=/home/$pid/jmapdump.txt $pid
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
作者编辑不易,如有转载请注明出处。完整转载来自https://wangairui.com 网站名称:猫扑linux
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果