1、优化linux openfile。
在catalina.sh中加入如下命令:
ulimit -s 128 ulimit -n 81920
2、系统编码设置。
在catalina.sh中加入如下命令:
export.UTF-8 export LC_ALL=zh_CN.UTF-8
3、jdk设置,如果系统中有多个jdk,可以在catalina.sh中明确指定使用哪个。
在catalina.sh中加入如下命令:
JAVA_HOME=/opt/j2sdk export JAVA_HOME export PATH=$JAVA_HOME/bin:$PATH echo "JAVA_HOME:"$JAVA_HOME
4、tomcat启动参数优化~参数含义我的其他文章有介绍,还是不明白就百度一下吧。
在catalina.sh中加入如下命令:
JAVA_OPTS="$JAVA_OPTS -server -Xmx3072m -Xms1024m -Xss256k -XX:+PrintGCDetails -Xloggc:$CATALINA_BASE/logs/tomcat_gc.log -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.security.egd=file:/dev/./urandom " export JAVA_OPTS
5、出现问题,可以开启远程调试端口进行本地调试。线上环境千万不要开启这个调试端口,太危险了,这个只是临时解决方案。
在catalina.sh中加入如下命令:
#export CATALINA_OPTS="$CATALINA_OPTS -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8788"
6、日志输出优化,由于tomcat自带的catalina.out会持续增长,而不进行切割。
所以如果日志量较大,需要自己使用log4j或者logback进行日志输出,这里应该关闭catalina.out日志。(我们也可以用linux工具logrotate进行切割)
在catalina.sh中加入如下命令:
# CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out CATALINA_OUT=/dev/null
7、tomcat请求参数优化。
在server.xml中修改为:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" minSpareThreads="25" maxSpareThreads="2000" enableLookups="false" disableUploadTimeout="true" acceptCount="2000" maxThreads="2000" maxProcessors="2000" minProcessors="5" useURIValidationHack="false" compression="on" compressionMinSize="2048" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" redirectPort="8081" />