注意,在執行隊列(圖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測試中所測得的系統吞吐量的曲線(單位:頁面/秒)
注意波動的出現,吞吐量不再是平滑的。
這在系統的各個方面都有所體現,包括CPU的使用量。
圖7. 一次flat測試中所測得的系統CPU使用量隨時間變化的曲線
注意,每隔一段時間就會出現一個波形。CPU使用量不再是平滑的,而是有了像吞吐量圖那樣的尖峰。
此外,執行隊列也承受著不穩定的負載,因此可以看到,隨著系統負載的增加和減少,執行隊列也在增長和縮減。
圖8. 一次flat測試中所測得的系統執行隊列的曲線
注意,每隔一段時間就會出現一個波形。執行隊列曲線與上面的CPU使用量圖非常相似。
最后,系統中事務的響應時間也遵循著這個波動模式。
圖9. 一次flat測試中所測得的系統事務的響應時間
注意,每隔一段時間就會出現一個波形。事務的響應時間也與上面的圖類似,只不過其效果隨著時間的推移逐漸減弱。
文章來源于領測軟件測試網 http://www.kjueaiud.com/