tomcat 壓力測試調優+引數配置
阿新 • • 發佈:2019-02-09
1.壓力測試的時候,當併發數達到100的時候,tomcat的執行緒數和連線池都出現了問題,需修改配置如下
<Connector port="8033" maxThreads="<span style="color:#ff6666;">1000</span>" minSpareThreads="55" maxSpareThreads="<span style="color:#ff0000;">1000</span>" enableLookups="false" redirectPort="8543" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK"/>
port:訪問應用埠號 maxThreads:tomcat能建立的最大執行緒數 minSpareThreads:最小備用執行緒數 maxSpareThreads:最大備用執行緒數
<ResourceParams name="sforce"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>maxWait</name> <value>5000</value> </parameter> <parameter> <name>maxActive</name> <value><span style="color:#ff0000;">400</span></value>
下面附有tomcat常見的屬性:
元素名 | 屬性 | 解釋 |
server | port | 指定一個埠,這個埠負責監聽關閉tomcat的請求 |
shutdown | 指定向埠傳送的命令字串 | |
service | name | 指定service的名字 |
Connector(表示客戶端和service之間的連線) | port | 指定伺服器端要建立的埠號,並在這個斷口監聽來自客戶端的請求 |
minProcessors | 伺服器啟動時建立的處理請求的執行緒數 | |
maxProcessors | 最大可以建立的處理請求的執行緒數 | |
enableLookups | 如果為true,則可以通過呼叫request.getRemoteHost()進行DNS查詢來得到遠端客戶端的實際主機名,若為false則不進行DNS查詢,而是返回其ip地址 |
|
redirectPort | 指定伺服器正在處理http請求時收到了一個SSL傳輸請求後重定向的埠號 | |
acceptCount | 指定當所有可以使用的處理請求的執行緒數都被使用時,可以放到處理佇列中的請求數,超過這個數的請求將不予處理 | |
connectionTimeout | 指定超時的時間數(以毫秒為單位) | |
Engine(表示指定service中的請求處理機,接收和處理來自Connector的請求) | defaultHost | 指定預設的處理請求的主機名,它至少與其中的一個host元素的name屬性值是一樣的 |
Context(表示一個web應用程式,通常為WAR檔案,關於WAR的具體資訊見servlet規範) | docBase | 應用程式的路徑或者是WAR檔案存放的路徑 |
path | 表示此web應用程式的url的字首,這樣請求的url為http://localhost:8080/path/**** | |
reloadable | 這個屬性非常重要,如果為true,則tomcat會自動檢測應用程式的/WEB-INF/lib 和/WEB-INF/classes目錄的變化,自動裝載新的應用程式,我們可以在不重起tomcat的情況下改變應用程式 | |
host(表示一個虛擬主機) | name | 指定主機名 |
appBase | 應用程式基本目錄,即存放應用程式的目錄 | |
unpackWARs | 如果為true,則tomcat會自動將WAR檔案解壓,否則不解壓,直接從WAR檔案中執行應用程式 | |
Logger(表示日誌,除錯和錯誤資訊) | className | 指定logger使用的類名,此類必須實現org.apache.catalina.Logger 介面 |
prefix | 指定log檔案的字首 | |
suffix | 指定log檔案的字尾 | |
timestamp | 如果為true,則log檔名中要加入時間,如下例:localhost_log.001-10-04.txt | |
Realm(表示存放使用者名稱,密碼及role的資料庫) | className | 指定Realm使用的類名,此類必須實現org.apache.catalina.Realm介面 |
Valve(功能與Logger差不多,其prefix和suffix屬性解釋和Logger 中的一樣) | className | 指定Valve使用的類名,如用org.apache.catalina.valves.AccessLogValve類可以記錄應用程式的訪問資訊 |
directory | 指定log檔案存放的位置 | |
pattern | 有兩個值,common方式記錄遠端主機名或ip地址,使用者名稱,日期,第一行請求的字串,HTTP響應程式碼,傳送的位元組數。combined方式比common方式記錄的值更多 |