内存溢出排查
这是第一次排查内存溢出,梳理了下流程,分享给大家。
1. 常见Linux命令
排序 | 命令 | 含义 |
---|---|---|
1 | free -m | 查看内存情况 |
2 | top | 动态查看物理内存及CPU,休眠线程数等 |
3 | ps -ef|grep tomcat | 查看tomcat进程 |
4 | jmap -dump:format=b,file=文件名全路径 pid号 | 导出dump文件 |
2. 性能分析
最简单查看java内存的方法就是分析dump文件.
1> 查找当前进程的Pid , 如图所示, pid 是 16959
2> 到jdk安装目录bin下面找一个 jmap的命令
3> 然后 ./jmap -dump:format=b,file=/opt/heap/heap1.bin 16959, 得到 第一个 heap1.bin
4> 过个把小时, 再使用这个命令 ./jmap -dump:format=b,file=/opt/heap/heap2.bin 16959, 得到第二个heap2.bin
##3. idea集成性能分析工具地址
https://blog.csdn.net/weixin_33602978/article/details/85331961
4.jdk 自带解析工具解析方法
- 打开jdk安装bin目录
- 选中地址栏 键盘输入cmd
- 在弹出的cmd窗口输入命令:jhat -J-Xmx1024M dump文件地址
- 打开浏览器输入localhost:7000