Tomcat 介绍
apache旗下轻量级,免费服务器 适用于中小型项目
目前主流版本 7.x,8.x,9.x
启动优化
优化内存,初始化内存 指定catalina.sh文件下初始启动最大最小内存
set CATALINA_OPTS=-Xms1024m -Xmx2048m
jvm内存gc优化
set "JAVA_OPTS= -server -Xms4096M -Xmx4096M -Xss512k -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:+DisableExplicitGC -XX:MaxTenuringThreshold=15 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true"
- -server使用tomcat的服务器配置,性能会高一点 不开启,默认是客户端模式
- xms xmx xss 优化最大最小 每个线程使用的内存
- 后续-xx:用来优化gc
并发优化
基本优化:
修改conf/server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
增加属性
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="600" #最大线程数
minSpareThreads="100"#最小空闲连接
maxSpareThreads="100" #最大空闲连接
acceptCount="500" #排队连接数 当连接数达到tomcat最大连接数之后,会进入排队状态,这个参数限制了排队的连接数,超过这个数,返回连接失败 默认100
connectionTimeout="20000" #连接超时时间 -1永不超时
redirectPort="8443" />
优化策略:
- 增加并发配置
-
- maxThreads 最大线程数
- minProcessors/maxProcessors 最大/最小同时处理线程数
- minSpareThreads/maxSpareThreads 最大/最小空闲连接数
- acceptCount 队列数
- connectionTimeout 连接超时
- enableLookups 反查主机名
- compression 压缩页面
- compressionMinSize="1024" 压缩最小体积
- compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" 压缩格式
- 修改通讯协议 bio/nio/aio(apr) tomcat8默认使用nio
-
- bio 同步阻塞
- nio 同步非阻塞
- aio 异步非阻塞
- 禁用ajp连接器
- 开启线程池
<Executor name="tomcatThreadPool" namePrefix="HTTP-8080-exec-"
maxThreads="5000" minSpareThreads="10"
acceptCount="1000"
/>
a.
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
maxThreads="100"
minSpareThreads="5"
maxSpareThreads="20"
acceptCount="100"
redirectPort="8443"
executor="tomcatThreadPool"
/>
-
- 开启线程池后,连接器配置的部分并发参数无效化