jmeter對tomcat性能測試


主要對tomcat的參數做一些記錄(jmeter和tomcat在同一個計算機,可能引起測試誤差)

我的計算機配置  4核8線程  8G內存

案例一

tomcat  JVM  1.8G堆內存,無數據庫操作

#最大線程數
server.tomcat.maxThreads =10000
#這個參數是指在同一時間,tomcat能夠接受的最大連接數,一般這個值要大於maxThreads+acceptCount
server.tomcat.maxConnections =20000
#當線程數量達到最大線程數時所允許的最大等待隊列的長度
server.tomcat.acceptCount =200
#最小空閑線程數
server.tomcat.minSpareThreads =10



  並發數 平均響應時間 響應時間中位數 90%用戶的響應時間 95%用戶的響應時間 99%用戶的響應時間 最小響應時間 最大響應時間 錯誤率 吞吐量(s) 每秒發送的數據(KB) 每秒接受的數據(KB)
HTTP Request 1000 354 337 850 862 873 1 879 0.0% 887.3 103.9 274.6
HTTP Request 5000 1000 1047 1725 2009 2422 94 2721 0.0% 802.9 94.0 248.5
HTTP Request 10000 1692 1389 3265 3582 3918 137 6016 0.0% 699.8 78.5 207.3
HTTP Request 15000 1166 945 2565 2877 3958 5 5347 47.3% 496.7 611.7 80.9
HTTP Request 20000 1477 1355 2883 3244 4273 5 5298 17.7% 680.2 363.8 172.2

 

分析:在tomcat允許最大10000線程的情況下,並發數越大,響應時間越長,吞吐量越小。在某時刻會發生連接錯誤。

 

案例二

 

tomcat  JVM  1.8G堆內存,無數據庫操作

 

#最大線程數
server.tomcat.maxThreads =800
#這個參數是指在同一時間,tomcat能夠接受的最大連接數,一般這個值要大於maxThreads+acceptCount
server.tomcat.maxConnections =20000
#當線程數量達到最大線程數時所允許的最大等待隊列的長度
server.tomcat.acceptCount =200
#最小空閑線程數
server.tomcat.minSpareThreads =10

 

  並發數 平均響應時間 響應時間中位數 90%用戶的響應時間 95%用戶的響應時間 99%用戶的響應時間 最小響應時間 最大響應時間 錯誤率 吞吐量(s) 每秒發送的數據(KB) 每秒接受的數據(KB)
HTTP Request 1000 1806 2019 2356 2410 2497 975 2582 0.0% 385.8 45.2 119.4
HTTP Request 5000 2353 2210 3582 4159 4341 618 4538 49.74% 874.3 1255.4 136.0

分析:在tomcat允許最大800線程的情況下,並發數不能超過800太多(1000可以),不然會有很多的請求會因為tomcat的接受請求線程全被占用而被tomcat服務器拒絕接受。Address already in use: connect

 

案例三

tomcat  JVM  1.8G堆內存,無數據庫操作

#最大線程數
server.tomcat.maxThreads =20000
#這個參數是指在同一時間,tomcat能夠接受的最大連接數,一般這個值要大於maxThreads+acceptCount
server.tomcat.maxConnections =30000
#當線程數量達到最大線程數時所允許的最大等待隊列的長度
server.tomcat.acceptCount =200
#最小空閑線程數
server.tomcat.minSpareThreads =10
  並發數 平均響應時間 響應時間中位數 90%用戶的響應時間 95%用戶的響應時間 99%用戶的響應時間 最小響應時間 最大響應時間 錯誤率 吞吐量(s) 每秒發送的數據(KB) 每秒接受的數據(KB)
HTTP Request 20000 1638 1330 3210 3872 4382 4 4619 13.26% 717.6 311.8 192.6
HTTP Request 15000 1597 1406 315 3276 4116 3 4994 1.22% 767.2 114.7 234.6
HTTP Request 8000 1726 1729 2905 2993 4099 82 4768 0.0% 797.7 94.8 246.8
HTTP Request 5000 2171 2073 3423 3844 4498 334 4892 0.0% 753.1 100.6 231.7
HTTP Request 3000 2075 2214 3265 3391 3656 1 3736 0.0% 712.8 83.53 220.6
HTTP Request 1000 461 565 843 874 992 2 998 0.0% 796.2 93.3 246.4

 

分析:和案例一相比類似,最大線程數不是越大越好,線程數的增多或導致過多的線程上下文切換,耗費時間。導致單個響應時間的上升。

總結:maxThreads並沒有一個最優的值,需要根據系統的配置和項目內容來不斷地測試,調整和優化。最終得到合理的配置。在tomcat的配置相同的情況並且相同的並發下,響應時間,錯誤率,吞吐量也存在較大差異,主要是因為系統的真實環境不同,可能系統本來就有較多線程在運行。

 

 

 

 

5000並發


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM