jvm参数设置最佳实践
网上jvm参数设置,jvm调优的文章很多,比较著名的一篇文章是唯品会架构师江南白衣写的
关键业务系统的JVM参数推荐(2018仲夏版)
但是在实际应用中还是有一些不足
1。我们可能会对线上系统进行远程调试,手动写入远程调试配置还是比较麻烦的,因此可以增加下面一行
#如果需要debug,则打开下面这个注释,否则在运行期间关闭
#DEBUG_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
2。我们可能会对线上系统进行性能分析,jmc是jdk自带的一个比较好的性能分析工具,因此可以增加下面一行
#如果需要使用jmc进行性能分析,则打开下面这个注释,否则在运行期间关闭
#JMC_OPTS="-Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -XX:+UnlockCommercialFeatures -XX:+FlightRecorder"
最后,修改最终参数,从
## All together ##
export JAVA_OPTS="$MEM_OPTS $GC_OPTS $GCLOG_OPTS $OPTIMIZE_OPTS $SHOOTING_OPTS $JMX_OPTS $OTHER_OPTS"
改为
## All together ##
export JAVA_OPTS="$DEBUG_OPTS $JMC_OPTS $MEM_OPTS $GC_OPTS $GCLOG_OPTS $OPTIMIZE_OPTS $SHOOTING_OPTS $JMX_OPTS $OTHER_OPTS"
懒人一键拿走
#!/bin/bash
# 使用指南:
# 1. 修改本文件中的LOGDIR 和 APPID变量
# 2. 根据实际情况需求,反注释掉一些参数。
# 3. 修改应用启动脚本,增加 "source ./jvm-options.sh",或者将本文件内容复制进应用启动脚本里.
# 4. 修改应用启动脚本,使用输出的JAVA_OTPS变量,如ja