1. 调整JVM的考虑因素
l JVM的提供商及版本(要通过WLS认证并且性能最佳)
l 调整堆栈大小及垃圾回收算法
l 对JVM运行进行监控及告警设置
2. 调整技巧
l JVM内存设置不应该超过物理内存,否则会显著降低系统性能
l 年轻代的内存设置应该不超过整个堆的50%,通常为25%到40%
l 生产模式下将初始堆内存与最大堆内存设置为相同值
3. HotSpot调优设置
表4、HotSpot调优参数设置
操作 |
选项 |
说明 |
设置新生代大小 |
-XX:NewSize |
通常-XX:NewSize设置为堆的四分之一 |
设置最大的新生代大小 |
-XX:MaxNewSize |
|
设置新生代比例 |
-XX:SurvivorRatio |
Eden/survivor的比值,通常为8 |
设置初始化堆大小 |
-Xms |
Oracle建议设置-Xms与-Xmx相等 |
设置最大堆大小 |
-Xmx |
|
设置大堆及ISM |
-XX:+UseISM -XX:+AggressiveHeap |
4. JRockit调优设置
表5、JRockit调优参数设置
操作 |
选项 |
描述 |
设置年轻代 |
-Xns |
当应用有大量临时对象时,该选项非常重要。最大值不能超过最大堆内存的95% |
设置初始堆大小 |
-Xms |
Oracle建议设置-Xms与-Xmx相等 |
设置最大堆大小 |
-Xmx |
最大堆越小,垃圾回收与频繁,要选择折中的值。 |
设置垃圾回收算法 |
-Xgc: parallel |
|
执行适应性优化 |
-XXaggressive:memory |