,Tomcat連接數設置(建議的設置,可根據服務器的實際性能進行更改)
在tomcat配置文件server.xml中的配置中,和連接數相關的參數有:
1 maxThreads:Tomcat使用線程來處理接收的每個請求。這個值表示Tomcat可創建的最大的線程數。portal預置值300。
2 acceptCount:指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求將不予處理。portal預置值50。
3 minSpareThreads:Tomcat初始化時創建的線程數。portal預置值25。
4 maxSpareThreads:一旦創建的線程超過這個值,Tomcat就會關閉不再需要的socket線程。portal預置值75。
5 connnectionTimeout:網絡連接超時,默認值60000,單位:毫秒。設置為0表示永不超時,這樣設置有隱患的。portal預置值為30000毫秒。
6 maxKeepAliveRequests:保持請求數量,portal預置值100。
7 bufferSize:輸入流緩沖大小,portal預置值2048 bytes。
把端口的配置替換為如下的內容,可以提高tomcat的性能,并且同時關閉tomcat的打印信息。可以復制下面的代碼進行粘貼后修改: <Connector port="80" maxHttpHeaderSize="8192" useBodyEncodingForURI="true"
maxThreads="300" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
compression="off" compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/css,text/plain"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>
二,如果在性能測試中發現有tomcat內存溢出的錯誤,就需要加大虛擬內存了。
Tomcat默認可以使用的內存為128MB,Windows下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh的前面,增加如下設置:JAVA_OPTS='-Xms【初始化內存大小】-Xmx【可以使用的最大內存】'需要把這個兩個參數值調大。例如:JAVA_OPTS='-Xms256m -Xmx512m'表示初始化內存為256MB,可以使用的最大內存為512MB(普通PC機作為服務器下建議用此配置)。
從實際應用的角度來說。-Xmx大了不是很好,垃圾回收需要更多的時間,但是thread問題就很大,配給JVM的內存數越大,tomcat所能開的thread數就越小,最后出現ava.lang.OutOfMemoryError: unable to create new native thread。
如果給jvm分配過多,剩余供OS使用,其中windows的dll占了一部分,但是你在JVM創建線程的時候,創建的是OS的線程,他要從剩余的空間中分配內存。如果沒有可用內存,出現上述錯誤。
如果是刀片4核,8G內存的服務器,如果布置兩個tomcat,tomcat預置值建議可以設置為JAVA_OPTS='-Xms512m –Xmx1024m'。