使用JProfiler分析OOM系统快照

当你阅读这篇文章的时候,内心基本是急躁的。但是我从来不多说废话直接上干货。
1 当收到公司系统邮件/短信告警的时候。二话不多说先上服务器。
2 先通过 top -c查看当前服务器进程并记录当前消耗cpu最高线程的pid。
使用JProfiler分析OOM系统快照_第1张图片
发现当前线程pid为744的使用率最高。
2 然后通过下面的命令到处jvm内存快照

jmap -dump:formart=b.file=java_pid_744.hprof 744
(java_pid_744.hprof是文件名。 744是通过top c查看消耗cpu使用率最高的线程id)  
然后下载到本地,下载先可以先压缩一下,这样可以节省时间。一个小技巧。

3 使用神器JProfiler。下载地址:

https://www.ej-technologies.com/products/jprofiler/overview.html

4 安装完成后打开。选择打开单个快照
使用JProfiler分析OOM系统快照_第2张图片
发现有个byte[] 占用了2G多内存
使用JProfiler分析OOM系统快照_第3张图片
选择最大对象
使用JProfiler分析OOM系统快照_第4张图片
打开后右键打开使用选定对象 使用JProfiler分析OOM系统快照_第5张图片使用JProfiler分析OOM系统快照_第6张图片然后这里会显示详细的日志
使用JProfiler分析OOM系统快照_第7张图片
然后这里可以看见具体的代码块。然后结合代码进行分析,使用JProfiler分析OOM系统快照_第8张图片
总体来说JProfile还是用起来挺方便的。今天有get了一个技能。

你可能感兴趣的:(linux,jvm,oom,java)