这些参数都是基于JDK8.
//打印堆栈溢出信息
OOM_OPTS=" -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/soft/jdump/xxx";
//jvm 参数
JAVA_OPTS="-Xms8192m -Xmx8192m -Xmn2048m -XX:+UseConcMarkSweepGC $OOM_OPTS -XX:+PrintGC -XX:+PrintGCDetails -Xloggc:/soft/gc.log -Djava.security.egd=file:/dev/./urandom -Dcom.sun.management.jmxremote.port=38881 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false "
参数说明:
Xms8192m : 初始值大小 (初始值与最大值设为一致, 避免扩容影响性能)
Xmx8192m : 最大值
Xmn2048m :新生代大小 (新生代大小为最大值的三分之一),
新生代 eden区, from区, to区比例默认为: 8:1:1, 比列修改: -XX:SurvivorRatio=8
新生代与老年代的默认比例为: 1: 2,新生代的大小必须比老年代小 尽量让gc在新生代进行, 比例修改: -XX:NewRatio=1
比例默认不需要修改, 除非拥有非常丰富的调优经验,
-XX:+UseConcMarkSweepGC: 指定年老代使用 CMS收集器, 与之搭配的年轻代的收集器是 ParNew ,都是并行。
老年代使用标记整理(也称标记压缩),不会产生内存碎片。
新生代使用 分代复制。 from区与to区总会空一个, 进行复制。 默认晋级到老年代的年龄是15还是18 来着。
CMS后的默认收集器是G1, 支持大堆, 关注吞吐量, 更短的STW(stop the word) 时间
$OOM_OPTS : 打印堆栈溢出信息
-XX:+PrintGC :打GC信息
-XX:+PrintGCDetails: 打印GC详情
-Xloggc:/soft/gc.log: gc日志存储路径
-Djava.security.egd=file:/dev/./urandom:在需要大量随机的时候, 加快随机数生成,
-Dcom.sun.management.jmxremote.port=38881: JVM监控工具 jvisualvm 远程连接端口
-Dcom.sun.management.jmxremote.ssl=false: 是否对连接开启SSL加密,默认开启
-Dcom.sun.management.jmxremote.authenticate=false : 是否需要开启用户认证,默认开启