一 Jvm 调优(8核32G,13个java服务)
JAVA_OPTS="-server -Xmx2g -Xms2g -Xmn1024m -Xss256k -XX:+UseG1GC -Duser.timezone=GMT+8"
java ${JAVA_OPTS} -jar -Xbootclasspath/a:${BASE_PATH} ${APP_HOME}/${JAR_NAME} > ${APP_LOG} 2>&1 &
以下为并行方式,jvm内存不到70%时,不会触发回收
JAVA_OPTS="-server -Xmx2g -Xms2g -Xmn512m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -Duser.timezone=GMT+8"
java ${JAVA_OPTS} -jar -Xbootclasspath/a:${BASE_PATH} ${APP_HOME}/${JAR_NAME} > ${APP_LOG} 2>&1 &
Xms 是指设定程序启动时占用内存大小
Xmx 是指设定程序运行期间最大可占用的内存大小。如果程序运行需要占用更多的内存,超出了这个设置值,就会抛出OutOfMemory异常。
Xss 是指设定每个线程的堆栈大小。
JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程
-Xmn2g :设置年轻代大小为2G。
二 除配置上述参数外还需配置线程池参数才能发挥服务器性能效果,线程池参数值需要通过压测,根据cpu核数进行设定,选一个零界点的值,配置不好会出现有时会卡顿现象。