性能測試之吞吐量
系統(tǒng)吞吐量:系統(tǒng)吞吐量是指系統(tǒng)在單位時間內(nèi)所處理的信息量,它以每小時或每天所處理的進程數(shù)來度量。吞吐量是指對網(wǎng)絡(luò)、設(shè)備、端口、虛電路或其他設(shè)施,單位時間內(nèi)成功地傳送數(shù)據(jù)的數(shù)量(以比特、字節(jié)、分組等測量)。對于交互式應(yīng)用來說,吞吐量指標反映的是服務(wù)器承受的壓力,在容量規(guī)劃的測試中,吞吐量是一個重點關(guān)注的指標,因為它能夠說明系統(tǒng)級別的負載能力,另外,在性能調(diào)優(yōu)過程中,吞吐量指標也有重要的價值。如一個大型工廠,他們的生產(chǎn)效率與生產(chǎn)速度很快,一天生產(chǎn)10W噸的貨物,結(jié)果工廠的運輸能力不行,就兩輛小型三輪車一天拉2噸的貨物,比喻有些夸張,但我想說明的是這個運輸能力是整個系統(tǒng)的瓶頸。
提示,用吞吐量來衡量一個系統(tǒng)的輸出能力是極其不準確的,用個最簡單的例子說明,一個水龍頭開一天一夜,流出10噸水;10個水龍頭開1秒鐘,流出0.1噸水。當然是一個水龍頭的吞吐量大。你能說1個水龍頭的出水能力是10個水龍頭的強?所以,我們要加單位時間,看誰1秒鐘的出水量大。這就是吞吐率。
系統(tǒng)吞吐量:系統(tǒng)吞吐量是指系統(tǒng)在單位時間內(nèi)所處理的信息量,它以每小時或每天所處理的進程數(shù)來度量。
系統(tǒng)吞吐量是指系統(tǒng)在單位時間內(nèi)所處理的信息量,它以每小時或每天所處理的進程數(shù)來度量。
影響吞吐量因素:
1、存儲設(shè)備的存取速度,即從存儲器讀出數(shù)據(jù)或數(shù)據(jù)寫入存儲器所需時間;
2、CPU性能:1)時鐘頻率;2)每條指令所花的時鐘周期數(shù)(即CPI);3)指令條數(shù);
3、系統(tǒng)結(jié)構(gòu),如并行處理結(jié)構(gòu)可增大吞吐量。
吞吐率
單位時間內(nèi)網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)量,也可以指單位時間內(nèi)處理客戶請求數(shù)量。它是衡量網(wǎng)絡(luò)性能的重要指標,通常情況下,吞吐率用“字節(jié)數(shù)/秒”來衡量,當然,你可以用“請求數(shù)/秒”和“頁面數(shù)/秒”來衡量。其實,不管是一個請求還是一個頁面,它的本質(zhì)都是在網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù),那么來表示數(shù)據(jù)的單位就是字節(jié)數(shù)。
不過以不同的方式表達的吞吐量可以說明不同層次的問題。例如,以字節(jié)數(shù)/秒方式表示的吞吐量主要受網(wǎng)絡(luò)基礎(chǔ)設(shè)置、服務(wù)器架構(gòu)、應(yīng)用服務(wù)器制約;以請求數(shù)/秒方式表示的吞吐量主要受應(yīng)用服務(wù)器和應(yīng)用代碼的制約。
但是從業(yè)務(wù)的角度看,吞吐率也可以用“業(yè)務(wù)數(shù)/小時或天”、“訪問人數(shù)/小時或天”、“頁面訪問量/小時或天”來衡量。例如,在銀行卡審批系統(tǒng)中,可以用“千件/小時”來衡量系統(tǒng)的業(yè)務(wù)處理能力。那么,從用戶的角度,一個表單提交可以得到一次審批。又引出來一個概念---事務(wù)。
事務(wù)
就是用戶某一步或幾步操作的集合。不過,我們要保證它有一個完整意義。比如用戶對某一個頁面的一次請求,用戶對某系統(tǒng)的一次登錄,淘寶用戶對商品的一次確認支付過程。這些我們都可以看作一個事務(wù)。那么如何衡量服務(wù)器對事務(wù)的處理能力。又引出一個概念----TPS
TPS (Transaction Per second)
每秒鐘系統(tǒng)能夠處理事務(wù)或交易的數(shù)量,它是衡量系統(tǒng)處理能力的重要指標。
每秒事務(wù)處理量 - 性能測試的術(shù)語介紹
點擊率(Hit Per Second)
點擊率可以看做是TPS的一種特定情況。點擊率更能體現(xiàn)用戶端對服務(wù)器的壓力。TPS更能體現(xiàn)服務(wù)器對客戶請求的處理能力。
每秒鐘用戶向web服務(wù)器提交的HTTP請求數(shù)。這個指標是web 應(yīng)用特有的一個指標;web應(yīng)用是“請求-響應(yīng)”模式,用戶發(fā)一個申請,服務(wù)器就要處理一次,所以點擊是web應(yīng)用能夠處理的交易的最小單位。如果把每次點擊定義為一個交易,點擊率和TPS就是一個概念。容易看出,點擊率越大。對服務(wù)器的壓力也越大,點擊率只是一個性能參考指標,重要的是分析點擊時產(chǎn)生的影響。
需要注意的是,這里的點擊不是指鼠標的一次“單擊”操作,因為一次“單擊”操作中,客戶端可能向服務(wù)器發(fā)現(xiàn)多個HTTP請求。
吞吐量指標的作用:
再次將話題回歸到吞吐量上,在我們的性能測試中查看吞吐量對我們的測試有什么意義呢。
1. 用戶協(xié)助設(shè)計性能測試場景,以及衡量性能測試場景是否達到了預(yù)期的設(shè)計目標:在設(shè)計性能測試場景時,吞吐量可被用戶協(xié)助設(shè)計性能測試場景,根據(jù)估算的吞吐量數(shù)據(jù),可以對應(yīng)到測試場景的事務(wù)發(fā)生頻率,事務(wù)發(fā)生次數(shù)等;另外,在測試完成后,根據(jù)實際的吞吐量可以衡量測試是否達到了預(yù)期的目標。
2. 用于協(xié)助分析性能瓶頸:吞吐量的限制是性能瓶頸的一種重要表現(xiàn)形式,因此,有針對性地對吞吐量設(shè)計測試,可以協(xié)助盡快定位到性能冰晶所在位置。
擴展:
RBI(rapid bottleneck identify)
是Empirix公司提出的快速識別系統(tǒng)性能瓶頸的方法。該方法基于以下事實。
1. 發(fā)現(xiàn)的80%系統(tǒng)的性能瓶頸都由吞吐量制約;
2. 并發(fā)用戶數(shù)和吞吐量瓶頸之間存在一定的關(guān)聯(lián);
3. 采用吞吐量測試可以更快速定位問題。
通過不斷增加并發(fā)用戶數(shù)和吞吐量觀察系統(tǒng)的性能瓶頸。然后,從網(wǎng)絡(luò)、數(shù)據(jù)庫、應(yīng)用服務(wù)器和代碼本身4個環(huán)節(jié)確定系統(tǒng)的的性能瓶頸。
其實,我講了這么多概念,我們無非是站在不同的角度去分解系統(tǒng)的性能,站在用戶的角度,服務(wù)器的角度、系統(tǒng)的各種角度。了解一個人需要多方面,了解一個系統(tǒng)也需要多方面。我在盡量把這些東西講的不枯燥,而且易懂。其實,自己寫的過程也是思考的過程。
posted on 2014-01-30 12:25 順其自然EVO 閱讀(4154) 評論(0) 編輯 收藏 所屬分類: 性能測試