JVM参数优化

1、优化Tomcat应用的JVM参数

        一般情况下,只需要进入到tomcat应用的bin目录下,直接新建一个 setenv.sh 的可执行脚本,并且在 可执行脚本 setenv.sh 里面写上 相关的JVM 参数即可。

        新建 setenv.sh 比直接修改 catalina.sh 文件更加简洁方便,更加不容易出错。默认情况 可执行脚本 catalina.sh 会执行和 读取 bin目录下的 可执行文件 setenv.sh,且默认情况tomcat的bin目录是不存在setenv.sh 可执行文件,需要自己创建。

# cd ${TOMCAT_BASE/bin}

cat > ${TOMCAT_BASE/bin}/setenv.sh << EOF

#!/bin/bash
# export JAVA_HOME=/usr/local/jdk1.8.0_181
# export JRE_HOME=/usr/local/jdk1.8.0_181/jre
# export LD_LIBRARY_PATH=/usr/local/apr/lib:$LD_LIBRARY_PATH
export JAVA_OPTS="-server -Xms4096m -Xmx4096m -Xmn1200m -Xss512k -XX:MetaspaceSize=256m \
                  -XX:MaxMetaspaceSize=512m -XX:NativeMemoryTracking=summary \
                  -Duser.timezone=GMT+8 -Dfile.encoding=UTF-8 \
                  -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=../logs/ \
                  -XX:+PrintGCApplicationStoppedTime -XX:+DisableExplicitGC -XX:+UseG1GC \
                  -XX:+PrintAdaptiveSizePolicy -XX:+PrintGCDetails -XX:+PrintGCDateStamps  \
                  -XX:+HeapDumpBeforeFullGC -XX:+HeapDumpAfterFullGC \
                  -Xloggc:../logs/gc.%t.log"

# 若 Tomcat 是以 高性能高并发模式 apr 运行时,需要指定 apr 库文件位置
# JAVA_OPTS="$JAVA_OPTS -Djava.library.path=/usr/local/apr/lib"

export UMASK=0022

EOF

chmod a+x ${TOMCAT_BASE/bin}/setenv.sh

## 重启 Tomcat 
#  cd ${TOMCAT_BASE/bin}; sh shutdown.sh && sh startup.sh

2、注意:

        要在Tomcat的bin目录执行startup.sh启动命令,此时产生的GC文件以及堆内存溢出(HeapDump)文件存放在Tomcat的logs目录下,若使用绝对路径等方法执行 startup.sh 启动Tomcat,则Tomcat产生的GC文件以及堆内存溢出文件存放目录也会相应跟着改变。

        解决方法是将 setenv.sh 脚本指定的GC文件以及HeapDump溢出文件存放位置写成绝对路径即可。

        生产环境要慎重考虑是否设置内存溢出的dump文件,要不然有可能会造成存储空间不足:-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=../logs/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值