一、采用jmeter進行測試
為什么使用jmeter, 它免費開源, 不斷發展, 功能逐漸強大. 可以做功能,負載, 性能測試.一套腳本可以同時用於功能和性能測試.Jmeter 有着眾多的插件開發者, 支持多種的測試協議.
關於jmeter的使用,請參考
http://www.hissummer.com/jmeter-summary.html
二、jmeter高級使用
jmeter-集合點
三、性能測試和優化
並發數、QPS、平均響應時間三者之間關系
上圖橫坐標是並發用戶數。綠線是CPU使用率;紫線是吞吐量,即QPS;藍線是時延。
開始,系統只有一個用戶,CPU工作肯定是不飽合的。一方面該服務器可能有多個cpu,但是只處理單個進程,另一方面,在處理一個進程中,有些階段可能是IO階段,這個時候會造成CPU等待,但是有沒有其他請 求進程可以被處理)。隨着並發用戶數的增加,CPU利用率上升,QPS相應也增加(公式為QPS=並發用戶數/平均響應時間。)隨着並發用戶數的增加,平均響應時間也在增加,而且平均響應時間的增加是一個指數增加曲線。而當並發數增加到很大時,每秒鍾都會有很多請求需要處理,會造成進程(線程)頻繁切換,反正真正用於處理請求的時間變少,每秒能夠處 理的請求數反而變少,同時用戶的請求等待時間也會變大,甚至超過用戶的心理底線。
一個系統吞吐量通常由QPS(TPS)、並發數兩個因素決定,每套系統這兩個值都有一個相對極限值,在應用場景訪問壓力下,只要某一項達到系統最高值,系統的吞吐量就上不去了,如果壓力繼續增大,系統的吞吐量反而會下降,原因是系統超負荷工作,上下文切換、內存等等其它消耗導致系統性能下降。需要找到系統的閾值,不能超過這個值
以下測試場景遵循規則:請求的response的超時時間為1000毫秒
1、tomcat配置:acceptCount="200" maxThreads="200" maxConnections="200" protocol="HTTP/1.1"
模擬最大並發500,循環100次
模擬最大並發400,循環100次
模擬最大並發300,循環100次
模擬最大並發200,循環100次
模擬最大並發100,循環100次