相关工具
1)top命令;
2)vmstat命令;
3)pidstat命令;
4)jstat命令;
5)jstack命令;
6)jmap命令
导出堆文件,使用MAT分析
内存溢出问题
1)高并发下没有限流,瞬间创建大量对象,一般限流可以解决;
2)内存泄漏导致,需要找到问题代码;
1)线上怎么知道内存溢出了?
2)top命令查看jvm进程内存使用情况;
3)top -Hp pid命令查看具体线程堆栈信息、CPU使用率和负载;
4)jmap命令查看堆内存,发现老年代内存使用率过高;
5)jmap命令查看存活对象的数量;
6)使用MAT分析堆内存,查看内存占用过多的对象,看哪个对象引用了它,找出相关代码(with incoming reference)