1. 上线前
总堆内存大小
一般设置为总内存大小一半左右
-xmn 新生代内存设置大小
官方推荐为总内存大小3/8,根据所部署的服务是有状态还是无状态服务,无状态服务可以适当调大一点,但一般不能超过3/4,否则会到导致一次YGC过长。
垃圾回收器选择(Java8)
G1垃圾回收器:适合堆内存大,兼顾吞吐量以及低延迟的应用,要求的堆内存大小至少1MB*2048=2GB
CMS垃圾回收器: 适合低延迟的应用,吞吐量比较低,另外垃圾回收后,容易产生内存碎片,慎用
并行回收器: java8默认回收器,吞吐量比较高,但是STW可能会比较高。
高吞吐量的应用,一般比如大批量处理数据的定时任务
低延迟应用,直接暴露给C端用户的应用
程序启动打开-XX:+HeapDumpOnOutOfMemoryError
当发生OOM会生成dump文件,可以导出,用MAT工具查看哪些对象占用内存过大,方便排查问题