Tomcat性能优化及常用命令整理
1.1连接参数
1.1.1默认连接配置
默认连接器采用阻塞式 IO,默认最大线程数为200,配置如下:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="gbk" useBodyEncodingForURI="true" />
1.1.2连接参数调优
可通过下面属性配置优化默认连接器:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="gbk" useBodyEncodingForURI="true"
maxThreads="300" minSpareThreads="50"
maxSpareThreads="100" acceptCount="1000" />
参数解释如下:
参数配置 </td> | 参数含义 | </tr>
maxProcessors | Tomcat4 支持 |
minProcessors | Tomcat4 支持 |
maxThreads="300" | 最大线程数 |
minSpareThreads="50" | 初始化时创建的线程数 |
maxSpareThreads="100" | 一旦创建的线程超过这个值, Tomcat 就会关闭不再需要的 socket线程 |
acceptCount="1000" | 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理 |
参数配置 </td> | 参数含义 | </tr>
-XX:+UseParNewGC | 新生代采用 ParNewGC 多线程收集器 |
-XX:+UseConcMarkSweepGC | 老年代采用 CMS 收集器,降低 GC停顿时间 |
-XX:+CMSParallelRemarkEnabled | 降低标记阶段的停顿时间 |
-XX:+UseCMSCompactAtFullCollection | CMS 基于标记- 清除,会产生碎片,通过此配置在 CMS 收集后做一次压缩整理 |
-XX:CMSFullGCsBeforeCompaction=0 | 配置多少次 CMS GC 后,做一次压缩整理,就不用每次都做压缩整理了 |
-XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=80 | 当老年代使用 80 %后开始CMS 收集,默认值为 68% 。因为CMS 收集会有延迟,所以不能等到老年代占满时再收集 |
-XX:+CMSClassUnloadingEnabled | 允许CMS 收集方法区 (PermGen) 。 JDK6 Update 3 及之前版本还需指定 -XX:+CMSPermGenSweepingEnabled参数 |