性能測試的有關定義
性能
(
perfotmance
)
——
應用程序的性能是進行典型操作所需的時間。性能常常用
“
響應時間
”
的標準來衡量。性能經常是重要的業務需求之一。
?
響應時間
(
response time
)
——
是應用程序處理一個請求所需的時間
(
比如:從用戶的瀏覽器得到的一個
HTTP
請求
)
。一般我們對平均響應時間感興趣,在負載增大時響應時間的一貫性也很重要。提高負載后若響應時間曲線出現鋸齒,往往說明性能乏善可陳,還有潛在的不穩定。
?
延遲時間
(
latency
)
——是從應用程序得到反饋所需的最少時間(不管程序是否需要做多工作才能得到這個反饋,遠程方法調用具有很長的延遲;不管被調用的方法是否成功,都有一個固定的最小開銷)。
?
吞吐量(
throughput
)——是程序或者組件在一段給定時間內所能進行工作的總和(對
web
應用來說,常常用每秒點擊率來衡量;對事務處理應用來說,則是每秒能完成的事務數)。
?
可伸縮性(
scalability
)——指應用程序如何應對增長的流量。說到可伸縮性的時候,我們通常指向上可伸縮(
scaling up
),以便應對更大的負載。可伸縮性經常等價于水平可伸縮性(
horizontal scalability
):向上伸縮到服務器集群來提高吞吐量。 我們也可以通過把應用轉移到更強的服務器上來提高吞吐量。后者要簡單得多,但顯然并不能讓應用更牢固,也只能得到有限的提高。
另一種選擇是垂直伸縮(
vertical scaling
):在每臺服務器上運行多份服務。“垂直伸縮”這個術語被
Fowler
用來指“為單臺服務器增加更多的計算能力”,比如添加額外的
CPU
或者內存。
性能和可伸縮性有時候在現實中是對立的。能在單臺服務器上高性能運行的應用,卻可能無法被部署到集群中, 比如:為了獲得高性能,針對每個用戶在
session
中維護大量的數據;而在集群環境下,這些數據無法被高效地復制。然而,必須意識到,性能地下的應用同樣不會具有很好的可伸縮性。如果應用程序在單臺服務器上浪費資源,就以為著即便在集群中運行,也只不過是浪費更多的資源。
?
性能測試簡單說,就是在預期的壓力下,我的應用能跑多快。注意,這里的壓力是你預期的,更多的時候就是你的性能指標。
負載測試(
load test
)——目標是給系統以期望的負載量[
在沒有速度要求的情況下,我的應用能支撐多少的并發用戶,這里更多的是考慮容量。
]
壓力測試( stress test )——目標是在超過期望能力時確定系統行為[ 超過容量壓力下的表現,也關注應用的恢復能力,這里更多的是關注系統的變化,屬于健壯性測試(robustness?)一類 ]
穩定性測試 ( stability?test )—— 測試系統長時間運行的表現,更多的是發現一些資源泄漏等問題,一般壓力隨便設置。
基準測試對比性測試 ( benchmark ) ——一般用來廠商之間同類產品之間,相同產品版本之間的對比。
posted on 2006-04-13 11:10 戀戀冬季 閱讀(347) 評論(0) 編輯 收藏 所屬分類: 測試資料