該優化針對Linux X86_X64環境
1. Tomcat優化其實就是對server.xml優化(開戶線程池,調整http connector參數)
搜索【<Executor name="tomcatThreadPool"】,開啟並調整為
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="1000" maxIdleTime="60000"
minSpareThreads="20"/>
搜索【port="8080"】,調整為
<Connector executor=" tomcatThreadPool" port="8080" //開啟線程池
protocol="org.apache.coyote.http11. Http11AprProtocol" //開啟Apr協議,需要安裝Apr支持
maxHttpHeaderSize="8192" maxThreads="1000" processorCache="1000" acceptCount="1000"
minSpareThreads="100"
acceptorThreadCount="8" URIEncoding="UTF-8"
enableLookups="false" redirectPort="8443" //關閉反向查詢
connectionTimeout="120000" keepAliveTimeout="120000"
maxKeepAliveRequests="65535" disableUploadTimeout="true"
compression="on" compressionMinSize="4096" //開啟靜態文件壓縮
noCompressionUserAgents="gozilla, traviata" //開啟靜態文件壓縮
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,application/json,application/x-javascript " //開啟靜態文件壓縮
/>
2. 對catalina.sh優化JVM
打開 Tomcat路徑\bin\ catalina.sh,在最頂部加入,紅色部分請根據實際情況調整
JAVA_OPTS="-server -showversion -Xms12g -Xmx12g -XX:PermSize=256m -XX:MaxPermSize=256m"
JAVA_OPTS="$JAVA_OPTS -d64 -XX:CICompilerCount=8 -XX:+UseCompressedOops"
JAVA_OPTS="$JAVA_OPTS -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90"
JAVA_OPTS="$JAVA_OPTS -XX:ReservedCodeCacheSize=256m -XX:-UseAdaptiveSizePolicy"
JAVA_OPTS="$JAVA_OPTS -Duser.timezone=Asia/Shanghai -XX:-DontCompileHugeMethods"
JAVA_OPTS="$JAVA_OPTS -Xss256k -XX:+AggressiveOpts -XX:+UseBiasedLocking"
JAVA_OPTS="$JAVA_OPTS -XX:MaxTenuringThreshold=31 -XX:+CMSParallelRemarkEnabled "
JAVA_OPTS="$JAVA_OPTS -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=256m -XX:+UseFastAccessorMethods"
JAVA_OPTS="$JAVA_OPTS -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true"
JAVA_OPTS="$JAVA_OPTS -XX:+UseGCOverheadLimit -XX:AllocatePrefetchDistance=256 -XX:AllocatePrefetchStyle=1"
JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:MaxGCPauseMillis=200"
【注意】
1.-Xms=-Xmx=服務器內存*70%,如部署tomcat,jboss在同一台服務器-Xms=-Xmx=服務器內存*80%*1/4
2. 添加的參數建議要自己明白是什么意思,可以參考JVM參數列表