当你阅读这篇文章的时候,内心基本是急躁的。但是我从来不多说废话直接上干货。
1 当收到公司系统邮件/短信告警的时候。二话不多说先上服务器。
2 先通过 top -c查看当前服务器进程并记录当前消耗cpu最高线程的pid。
发现当前线程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 安装完成后打开。选择打开单个快照
发现有个byte[] 占用了2G多内存
选择最大对象
打开后右键打开使用选定对象 然后这里会显示详细的日志
然后这里可以看见具体的代码块。然后结合代码进行分析,
总体来说JProfile还是用起来挺方便的。今天有get了一个技能。