本地实践jvm参数调优和内存诊断
1,本地先启动Java项目
2,设置JVM参数
-Xms1g -Xmx1g -Xss256k -XX:MaxMetaspaceSize=256m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+DisableExplicitGC -Xloggc:D:/test.log
3,使用Jmeter模拟发送请求
添加插件,查看接口响应时间。可以看见并发下响应时间出现高峰
4,使用gceasy分析GC日志
https://gceasy.io/ 打开网址,分析D:/test.log的GC文件。可以看见内存占用很高和频繁的fullgc
5,使用VisualVM监控
如果Local没有Java项目,可能是权限不足导致的,使用管理员身份运行
或者使用jps命令查看进程id,再使用下面命令保存dump文件
jmap -dump:format=b,file=D:/dump.hprof 11445
6,分析堆栈信息
Brilliant Graphs, metrics and java heap dump analysis anti-patterns reported 可以在线分析
使用mat工具本地分析:饼图显示的空间为排除可回收对象后的展示
查看具体的内存占用
查看线程使用和线程文件,通过ThreadDump可以定位具体代码位置