MILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"> 在某一點上,執行隊列開始增長,因為服務器上所有的線程都已投入使用,傳入的請求不再被立即處理,而是放入隊列中,當線程空閑時再處理。
圖2.隨著負載的增加,系統執行隊列長度的曲線
注意,最初的一段時間,執行隊列的長度為零,然后就開始以穩定的速度增長。這是因為系統中的負載在穩定增長,雖然最初系統有足夠的空閑線程去處理增加的負載,最終它還是不能承受,而必須將其排入隊列。
當系統達到飽和點,服務器吞吐量保持穩定后,就達到了給定條件下的系統上限。但是,隨著服務器負載的繼續增長,系統的響應時間也隨之延長,雖然吞吐量保持穩定。
圖3.隨著負載的增加,系統中兩個事務的響應時間曲線
注意,在執行隊列(圖2)開始增長的同時,響應時間也開始以遞增的速度增長。這是因為請求不能被及時處理。
為了獲得真正可再現的結果,應該將系統置于相同的高負載下。為此,與服務器通信的虛擬用戶應該將請求之間的考慮時間設為零。這樣服務器會立即超載,并開始構建執行隊列。如果請求(虛擬用戶)數保持一致,基準測試的結果應該會非常精確,完全可以再現。
您可能要問的一個問題是:“如何度量結果?”對于一次給定的測試,應該取響應時間和吞吐量的平均值。精確地獲得這些值的唯一方法是一次加載所有的用戶,然后在預定的時間段內持續運行。這稱為“flat”測試。
圖4. flat測試的情況(所有的用戶都是同時加載的)
與此相對應的是“ramp-up”測試。
圖5. ramp-up測試的情況(在測試期間,用戶以穩定速度(每秒x個)增加)
ramp-up測試中的用戶是交錯上升的(每幾秒增加一些新用戶)。ramp-up測試不能產生精確和可重現的平均值,這是因為由于用戶的增加是每次一部分,系統的負載在不斷地變化。因此,flat運行是獲得基準測試數據的理想模式。
這不是在貶低ramp-up測試的價值。實際上,ramp-up測試對找出以后要運行的flat測試的范圍非常有用。ramp-up測試的優點是,可以看出隨著系統負載的改變,測量值是如何改變的。然后可以據此選擇以后要運行的flat測試的范圍。
Flat測試的問題是系統會遇到“波動”效果。
圖6.一次flat測試中所測得的系統吞吐量的曲線(單位:頁面/秒)
文章來源于領測軟件測試網 http://www.kjueaiud.com/