总体思路
- 让服务端应用以服务的模式执行,以获得相应的性能提升支持
- 显式地设置堆容量分配,避免对内存资源不合理的应用
- 选择合适的GC算法,提高性能
- 保存GC日志,作为优化的依据
- 保存OOM时的内存信息,以提高OOM排查效率
- 开启JMX服务,以方便监测JVM状态
注:对于堆容量分配和GC算法的选择需要有具体测试数据提供依据,否则可能无法提高性能,甚至降低性能。
让服务端应用以服务的模式执行
-server
开启 JVM 的 server 模式,以支持 JIT编译等相关特性
显示地设置堆容量分配
-Xms -Xmx
根据具体的可用资源规划,显式设置堆大小,可以减少 JVM 自动调整堆大小带来的开销
单位:g | m | k
参数内容示例:
-Xms1g
-Xmx4g
-XX:MaxMetaspaceSize
JDK8中,元数据区容量默认可以自动增长。为了稳定起见,可根据实际情况设置一个明确的上限
单位:g | m | k
参数内容示例:-XX:MaxMetaspaceSize=512m
-Xmn
设置新生代容量
单位:g | m |