一。配置 server.xml
配置说明: 优化步骤分为 :线程池优化参数优化 、连接器参数优化 (如果在 线程池参数 可以在连接器 中 给定参数 。就不需要 打开 <Executor /> 标签 )
1. 线程池参数优化
tomcat 默认 线程 配置是 maxThreads=
"150"
minSpareThreads=
"4" 即 支持最大线程数 150 最小 线程 4
<Executor name=
"tomcatThreadPool"
namePrefix=
"catalina-exec-"
maxThreads=
"150"
minSpareThreads=
"4"
/>
-->
<Executor name=
"tomcatThreadPool"
namePrefix=
"catalina-exec-"
maxThreads=
"1000"
minSpareThreads=
"100"
maxIdleTime=
"60000"
prestartminSpareThreads =
"true"
maxQueueSize =
"100"
className=
"org.apache.catalina.core.StandardThreadExecutor"
/>
连接器配置
<Connector executor=
"tomcatThreadPool"
URIEncoding=
"utf-8"
port=
"8080"
protocol=
"org.apache.coyote.http11.Http11Nio2Protocol"
enableLookups=
"false" // 消除DNS查询对性能的影响我们可以关闭DNS查询。
maxConnections=
"2000"
useURIValidationHack=
"false"
keepAliveTimeout=
"60000" // 为网络连接超时时间毫秒数
connectionTimeout=
"20000"
// connectionTimeout:网络连接超时 。通常可设置为30000毫秒。 maxThreads=
"1000" // 即最大并发数
acceptCount="100" // 当 并发数超过 maxthreads 设置的值 时 。后续的请求 放到队列中 。如果 如果队列满了 泽进行 拒绝 连接
minSpareThreads=
"100"
maxSpareThreads=
"2000"
minProcessors=
"100"
maxProcessors=
"1000"
compression="on" // 压缩 是否开启压缩GZIP on开启 off 关闭 forde:所有情况下都压缩 disableUploadTimeout="true" //
tcpNoDelay=
"true" 如果为true,服务器socket会设置TCP_NO_DELAY选项,在大多数情况下可以提高性能。缺省情况下设为true。
redirectPort=
"8443"
/>
3. 禁用 ajp 协议
注释tomcat中server.xml中<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 即可。
Windows 平台 直接 打开 catalina.bat
set JAVA_OPTS=-Dfile.encoding=UTF-8 -server -Xms1024m -Xmx2048m -XX:NewSize=512m -XX:MaxNewSize=1024m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxTenuringThreshold=10 -XX:NewRatio=2 -XX:+DisableExplicitGC
Linux 平台 打开 catalina.sh 修改
JAVA_OPTS="-Dfile.encoding=UTF-8 -server -Xms1024m -Xmx2048m -XX:NewSize=512m -XX:MaxNewSize=1024m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxTenuringThreshold=10 -XX:NewRatio=2 -XX:+DisableExplicitGC"
参数说明 :
#-Dfile.encoding:默认文件编码#-Xms512m 设置JVM的最小内存为512m,此值可以设置与-Xmx相同以此避免每次垃圾回收完成后JVM重新分配内存。 #-Xmx1024 设置JVM的最大可用内存#-XX:NewSize 设置年轻代大小#-XX:MaxNewSize 设置年轻代最大内存大小#-XX:PermSize 设置永久代大小#-XX:MaxPermSize 设置永久代最大内存#-XX:NewRatio=2 设置年轻代与老年代的比值 2 :表示年轻代与老年代的比值是1:2#-XX:MaxTenuringThreshold 这种垃圾的最大年龄,默认是15 。 0:表示年轻代不经过Survivor区直接进入老年代,对于老年代较多的应用,设置为0可以提高效率。如果该值较大表示年轻代的对象会在Survivor区进行多次复制,以此增加对象在年轻代的存活时间,增加在年轻代被回收的概率。#XX:+DisableExplicitGC 应用程序将忽略收到调用GC的代码。及System.GC()是一个空调用。
查看 tomcat 连接数
netstat
–nat |
grep
8080