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>
|
參數含義
</td>
</tr>
| |||||||||||||||||||||||||||||||||||||||||
maxProcessors
</td>
|
Tomcat4 支持
</td>
</tr>
| |||||||||||||||||||||||||||||||||||||||||
minProcessors
</td>
|
Tomcat4 支持
</td>
</tr>
| |||||||||||||||||||||||||||||||||||||||||
maxThreads="300"
</td>
|
最大線程數
</td>
</tr>
| |||||||||||||||||||||||||||||||||||||||||
minSpareThreads="50"
</td>
|
初始化時創建的線程數
</td>
</tr>
| |||||||||||||||||||||||||||||||||||||||||
maxSpareThreads="100"
</td>
|
一旦創建的線程超過這個值, Tomcat 就會關閉不再需要的 socket線程
</td>
</tr>
| |||||||||||||||||||||||||||||||||||||||||
acceptCount="1000"
</td>
|
指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求將不予處理
</td>
</tr>
</tbody>
</table>
</div>
1.1.3非阻塞式IO配置 使用非阻塞 IO連接器,只需將上面Connector配置中的 protocol協議部分改為:
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="gbk" useBodyEncodingForURI="true"/>
1.2 JVM參數 1.2.1堆大小 配置堆大小參數如下:
-Xms1024m –Xmx2048m
避免由于堆內存不足導致的內存溢出。
1.2.2方法區大小 配置方法區大小參數如下:
-XX:PermSize=512m -XX:MaxPermSize=512m
避免由于加載 Jar包Class 過多導致的內存溢出。
1.2.3垃圾回收策略 修改新生代和老年代的 GC策略:
-XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:+CMSClassUnloadingEnabled
參數解釋如下:
| |