windows tomcat 優化
1. tomcat conf server.xml
在server.xml中修改以一部分,增加節點數目,可以很好的提高性能:
<Connector port="8080" protocol="HTTP/1.1"
maxThreads="2000"
minSpareThreads="200"
maxSpareThreads="1000"
acceptCount="900"
connectionTimeout="20000"
redirectPort="8443"
/>
以上為默認配置,適當修改紅色字體部分的值,幾個參數意義分別為:
maxThreads: Tomcat使用線程來處理接收的每個請求。這個值表示Tomcat可創建的最大的線程數。
acceptCount:指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求將不予處理。
connnectionTimeout:網絡連接超時,單位:毫秒。設置為0表示永不超時,這樣設置有隱患的。通常可設置為30000毫秒。
minSpareThreads: Tomcat初始化時創建的線程數。
maxSpareThreads: 一旦創建的線程超過這個值,Tomcat就會關閉不再需要的socket線程
對於Connector 8443也有相應的設置,如果同時會用到http與https,應合理分配這兩個數據.如果只用到其中的一個,可以將另外一個盡量設置小一點.
示例:
<Connector port="80" protocol="HTTP/1.1"
maxThreads="2000"
minSpareThreads="200"
maxSpareThreads="1000"
acceptCount="900"
connectionTimeout="20000"
redirectPort="8443" />
2. java 虛擬機內存
可以給Java虛擬機設置使用的內存來提高性能,Tomcat默認可以使用的內存為128MB,在較大型的應用項目中,這點內存是不夠的,需要調大。
Windows下,在文件{tomcat_home}/bin/catalina.bat,Unix下,在文件{tomcat_home}/bin/catalina.sh的前面,增加如下設置:
JAVA_OPTS='-Xms【初始化內存大小】 -Xmx【可以使用的最大內存】'
需要把這個兩個參數值調大。例如:
JAVA_OPTS='-Xms512m -Xmx1024m'
或者添加系統變量:
變量名:JAVA_OPTS
變量值:-Xms512m -Xmx1024m
3. 修改注冊表(注冊表中找不到該項;跳過;)
如果不是執行startup.bat啟動tomcat而是利用windows的系統服務啟動tomcat服務,上面的設置就不生效了。
解決辦法:
修改注冊表HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat6\Parameters\JavaOptions
原值為:
-Dcatalina.home=E:\Tomcat 6.0
-Dcatalina.base=E:\Tomcat 6.0
-Djava.endorsed.dirs=E:\Tomcat 6.0\common\endorsed
-Djava.io.tmpdir=E:\Tomcat 6.0\temp
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=E:\Tomcat 6.0\conf\logging.properties
加入 -Xms512m -Xmx1024m,重起tomcat服務,設置生效
Linux環境下修改“%TOMCAT_HOME%\bin\catalina.sh”文件,在文件開頭增加如下設置:JAVA_OPTS=’-Xms512m -Xmx1024m’