tomcat運行期優化及問題解決方案

1、環境說明

Linux下tomcat運行期

2、增加jvm 內存的配置

#vi catalina.sh

插入如下:

JAVA_OPTS='-Xms256m -Xmx512m'

3、INFO: Maximum number of threads (200) created for connector with address null and port 11222

說明:最大線程數錯誤

解決方案:

使用線程池,用較少的線程處理較多的訪問,可以提高tomcat處理請求的能力。使用方式:

首先。打開/conf/server.xml,增加

Xml代碼
  1. <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"   
  2.         maxThreads="500" minSpareThreads="20" maxIdleTime="60000" />  
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="20" maxIdleTime="60000" />

最大線程500(一般服務器足以),最小空閒線程數20,線程最大空閒時間60秒。

然後,修改<Connector ...>節點,增加executor屬性,如:

Xml代碼
  1. <Connector executor="tomcatThreadPool"   
  2.                port="80" protocol="HTTP/1.1"   
  3.                connectionTimeout="60000"  
  4.                keepAliveTimeout="15000"  
  5.                maxKeepAliveRequests="1"  
  6.                redirectPort="443"  
  7.                 ....../>  
<Connector executor="tomcatThreadPool" port="80" protocol="HTTP/1.1" connectionTimeout="60000" keepAliveTimeout="15000" maxKeepAliveRequests="1" redirectPort="443" ....../>

4、java.net.SocketException: Too many open files

當tomcat併發用戶量大的時候,單個jvm進程確實可能打開過多的文件句柄。

使用 #lsof -p 10001|wc -l   查看文件操作數

如下操作:

Js代碼
  1. (1).ps -ef |grep tomcat   查看tomcat的進程ID,記錄ID號,假設進程ID爲10001   
  2. (2).lsof -p 10001|wc -l     查看當前進程id爲10001的 文件操作數   
  3. (3).使用命令:ulimit -a    查看每個用戶允許打開的最大文件數   
  4.    默認是1024.   
  5. (4).然後執行:ulimit -n 65536 將允許的最大文件數調整爲65536  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章