性能測(cè)試時(shí),tomcat配置優(yōu)化
性能測(cè)試時(shí),tomcat配置優(yōu)化
,Tomcat連接數(shù)設(shè)置(建議的設(shè)置,可根據(jù)服務(wù)器的實(shí)際性能進(jìn)行更改)
在tomcat配置文件server.xml中的配置中,和連接數(shù)相關(guān)的參數(shù)有:
1 maxThreads:Tomcat使用線(xiàn)程來(lái)處理接收的每個(gè)請(qǐng)求。這個(gè)值表示Tomcat可創(chuàng)建的最大的線(xiàn)程數(shù)。portal預(yù)置值300。
2 acceptCount:指定當(dāng)所有可以使用的處理請(qǐng)求的線(xiàn)程數(shù)都被使用時(shí),可以放到處理隊(duì)列中的請(qǐng)求數(shù),超過(guò)這個(gè)數(shù)的請(qǐng)求將不予處理。portal預(yù)置值50。
3 minSpareThreads:Tomcat初始化時(shí)創(chuàng)建的線(xiàn)程數(shù)。portal預(yù)置值25。
4 maxSpareThreads:一旦創(chuàng)建的線(xiàn)程超過(guò)這個(gè)值,Tomcat就會(huì)關(guān)閉不再需要的socket線(xiàn)程。portal預(yù)置值75。
5 connnectionTimeout:網(wǎng)絡(luò)連接超時(shí),默認(rèn)值60000,單位:毫秒。設(shè)置為0表示永不超時(shí),這樣設(shè)置有隱患的。portal預(yù)置值為30000毫秒。
6 maxKeepAliveRequests:保持請(qǐng)求數(shù)量,portal預(yù)置值100。
7 bufferSize:輸入流緩沖大小,portal預(yù)置值2048 bytes。
把端口的配置替換為如下的內(nèi)容,可以提高tomcat的性能,并且同時(shí)關(guān)閉tomcat的打印信息。
可以復(fù)制下面的代碼進(jìn)行粘貼后修改:
<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"/>
二,如果在性能測(cè)試中發(fā)現(xiàn)有tomcat內(nèi)存溢出的錯(cuò)誤,就需要加大虛擬內(nèi)存了。
Tomcat默認(rèn)可以使用的內(nèi)存為128MB,Windows下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh的前面,增加如下設(shè)置:JAVA_OPTS='-Xms【初始化內(nèi)存大小】-Xmx【可以使用的最大內(nèi)存】'需要把這個(gè)兩個(gè)參數(shù)值調(diào)大。例如:JAVA_OPTS='-Xms256m -Xmx512m'表示初始化內(nèi)存為256MB,可以使用的最大內(nèi)存為512MB(普通PC機(jī)作為服務(wù)器下建議用此配置)。
從實(shí)際應(yīng)用的角度來(lái)說(shuō)。-Xmx大了不是很好,垃圾回收需要更多的時(shí)間,但是thread問(wèn)題就很大,配給JVM的內(nèi)存數(shù)越大,tomcat所能開(kāi)的thread數(shù)就越小,最后出現(xiàn)ava.lang.OutOfMemoryError: unable to create new native thread。
如果給jvm分配過(guò)多,剩余供OS使用,其中windows的dll占了一部分,但是你在JVM創(chuàng)建線(xiàn)程的時(shí)候,創(chuàng)建的是OS的線(xiàn)程,他要從剩余的空間中分配內(nèi)存。如果沒(méi)有可用內(nèi)存,出現(xiàn)上述錯(cuò)誤。
如果是刀片4核,8G內(nèi)存的服務(wù)器,如果布置兩個(gè)tomcat,tomcat預(yù)置值建議可以設(shè)置為JAVA_OPTS='-Xms512m –Xmx1024m'。
,Tomcat連接數(shù)設(shè)置(建議的設(shè)置,可根據(jù)服務(wù)器的實(shí)際性能進(jìn)行更改)
在tomcat配置文件server.xml中的配置中,和連接數(shù)相關(guān)的參數(shù)有:
1 maxThreads:Tomcat使用線(xiàn)程來(lái)處理接收的每個(gè)請(qǐng)求。這個(gè)值表示Tomcat可創(chuàng)建的最大的線(xiàn)程數(shù)。portal預(yù)置值300。
2 acceptCount:指定當(dāng)所有可以使用的處理請(qǐng)求的線(xiàn)程數(shù)都被使用時(shí),可以放到處理隊(duì)列中的請(qǐng)求數(shù),超過(guò)這個(gè)數(shù)的請(qǐng)求將不予處理。portal預(yù)置值50。
3 minSpareThreads:Tomcat初始化時(shí)創(chuàng)建的線(xiàn)程數(shù)。portal預(yù)置值25。
4 maxSpareThreads:一旦創(chuàng)建的線(xiàn)程超過(guò)這個(gè)值,Tomcat就會(huì)關(guān)閉不再需要的socket線(xiàn)程。portal預(yù)置值75。
5 connnectionTimeout:網(wǎng)絡(luò)連接超時(shí),默認(rèn)值60000,單位:毫秒。設(shè)置為0表示永不超時(shí),這樣設(shè)置有隱患的。portal預(yù)置值為30000毫秒。
6 maxKeepAliveRequests:保持請(qǐng)求數(shù)量,portal預(yù)置值100。
7 bufferSize:輸入流緩沖大小,portal預(yù)置值2048 bytes。
把端口的配置替換為如下的內(nèi)容,可以提高tomcat的性能,并且同時(shí)關(guān)閉tomcat的打印信息。可以復(fù)制下面的代碼進(jìn)行粘貼后修改:
<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"/>
二,如果在性能測(cè)試中發(fā)現(xiàn)有tomcat內(nèi)存溢出的錯(cuò)誤,就需要加大虛擬內(nèi)存了。
Tomcat默認(rèn)可以使用的內(nèi)存為128MB,Windows下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh的前面,增加如下設(shè)置:JAVA_OPTS='-Xms【初始化內(nèi)存大小】-Xmx【可以使用的最大內(nèi)存】'需要把這個(gè)兩個(gè)參數(shù)值調(diào)大。例如:JAVA_OPTS='-Xms256m -Xmx512m'表示初始化內(nèi)存為256MB,可以使用的最大內(nèi)存為512MB(普通PC機(jī)作為服務(wù)器下建議用此配置)。
從實(shí)際應(yīng)用的角度來(lái)說(shuō)。-Xmx大了不是很好,垃圾回收需要更多的時(shí)間,但是thread問(wèn)題就很大,配給JVM的內(nèi)存數(shù)越大,tomcat所能開(kāi)的thread數(shù)就越小,最后出現(xiàn)ava.lang.OutOfMemoryError: unable to create new native thread。
如果給jvm分配過(guò)多,剩余供OS使用,其中windows的dll占了一部分,但是你在JVM創(chuàng)建線(xiàn)程的時(shí)候,創(chuàng)建的是OS的線(xiàn)程,他要從剩余的空間中分配內(nèi)存。如果沒(méi)有可用內(nèi)存,出現(xiàn)上述錯(cuò)誤。
如果是刀片4核,8G內(nèi)存的服務(wù)器,如果布置兩個(gè)tomcat,tomcat預(yù)置值建議可以設(shè)置為JAVA_OPTS='-Xms512m –Xmx1024m'。
posted on 2011-10-31 15:52 順其自然EVO 閱讀(1984) 評(píng)論(0) 編輯 收藏 所屬分類(lèi): 測(cè)試學(xué)習(xí)專(zhuān)欄