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
<Connectorport="8080"protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"/>
增加属性
<Connectorport="8080"protocol="org.apache.coyote.http11.Http11NioProtocol"maxThreads="600"#最大线程数minSpareThreads="100"#最小空闲连接maxSpareThreads="100"#最大空闲连接acceptCount="500"#排队连接数当连接数达到tomcat最大连接数之后,会进入排队状态,这个参数限制了排队的连接数,超过这个数,返回连接失败默认100connectionTimeout="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连接器
- 开启线程池
<Executorname="tomcatThreadPool"namePrefix="HTTP-8080-exec-"maxThreads="5000"minSpareThreads="10"acceptCount="1000"/>a. <Connectorport="8080"protocol="HTTP/1.1"connectionTimeout="20000"maxThreads="100"minSpareThreads="5"maxSpareThreads="20"acceptCount="100"redirectPort="8443"executor="tomcatThreadPool"/>
- 开启线程池后,连接器配置的部分并发参数无效化