3.JVM调优

分类栏目:JVM

资讯

1. 何时需要做jvm调优?

1. heap 内存(老年代)持续上涨达到设置的最大内存值;
2. Full GC 次数频繁;
3. GC 停顿时间过长(超过1秒);
4. 应用出现OutOfMemory 等内存异常;
5. 应用中有使用本地缓存且占用大量内存空间;
6. 系统吞吐量与响应性能不高或下降。
 

2. JVM调优原则

1、在应用上线之前,先考虑将机器的JVM参数设置到最优(最适合);
2、减少创建对象的数量;
3、减少使用全局变量和大对象;
4、JVM优化是到最后不得已才采用的手段;
5、在实际使用中,分析GC情况优化代码比优化JVM参数更好;
 
 

3. JVM调优经验总结

第1步:分析GC日志及dump文件,判断是否需要优化,确定瓶颈问题点;
第2步:确定JVM调优量化目标;
第3步:确定JVM调优参数(根据历史JVM参数来调整);
第4步:调优一台服务器,对比观察调优前后的差异;
第5步:不断的分析和调整,直到找到合适的JVM参数配置;
第6步:找到最合适的参数,将这些参数应用到所有服务器,并进行后续跟踪。
 

4.JVM内存分析工具-jmap

jmap [pid] # 查看具体情况

jmap -dump:live,format=b,file=xxx.xxx [pid] #将当前Java进程的内存占用情况导出来

jmap -histo:live [pid] >a.log # 显示 存活 得对象信息

jmap -finalizerinfo [pid] # 查看 等待执行finalize 方法的数量

jmap -heap [pid] # 堆摘要信息