qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

          性能測(cè)試之吞吐量

          系統(tǒng)吞吐量:系統(tǒng)吞吐量是指系統(tǒng)在單位時(shí)間內(nèi)所處理的信息量,它以每小時(shí)或每天所處理的進(jìn)程數(shù)來(lái)度量。吞吐量是指對(duì)網(wǎng)絡(luò)、設(shè)備、端口、虛電路或其他設(shè)施,單位時(shí)間內(nèi)成功地傳送數(shù)據(jù)的數(shù)量(以比特字節(jié)、分組等測(cè)量)。



          對(duì)于交互式應(yīng)用來(lái)說(shuō),吞吐量指標(biāo)反映的是服務(wù)器承受的壓力,在容量規(guī)劃的測(cè)試中,吞吐量是一個(gè)重點(diǎn)關(guān)注的指標(biāo),因?yàn)樗軌蛘f(shuō)明系統(tǒng)級(jí)別的負(fù)載能力,另外,在性能調(diào)優(yōu)過(guò)程中,吞吐量指標(biāo)也有重要的價(jià)值。如一個(gè)大型工廠,他們的生產(chǎn)效率與生產(chǎn)速度很快,一天生產(chǎn)10W噸的貨物,結(jié)果工廠的運(yùn)輸能力不行,就兩輛小型三輪車一天拉2噸的貨物,比喻有些夸張,但我想說(shuō)明的是這個(gè)運(yùn)輸能力是整個(gè)系統(tǒng)的瓶頸。

            提示,用吞吐量來(lái)衡量一個(gè)系統(tǒng)的輸出能力是極其不準(zhǔn)確的,用個(gè)最簡(jiǎn)單的例子說(shuō)明,一個(gè)水龍頭開(kāi)一天一夜,流出10噸水;10個(gè)水龍頭開(kāi)1秒鐘,流出0.1噸水。當(dāng)然是一個(gè)水龍頭的吞吐量大。你能說(shuō)1個(gè)水龍頭的出水能力是10個(gè)水龍頭的強(qiáng)?所以,我們要加單位時(shí)間,看誰(shuí)1秒鐘的出水量大。這就是吞吐率。
          系統(tǒng)吞吐量:系統(tǒng)吞吐量是指系統(tǒng)在單位時(shí)間內(nèi)所處理的信息量,它以每小時(shí)或每天所處理的進(jìn)程數(shù)來(lái)度量。

          系統(tǒng)吞吐量是指系統(tǒng)在單位時(shí)間內(nèi)所處理的信息量,它以每小時(shí)或每天所處理的進(jìn)程數(shù)來(lái)度量。

            影響吞吐量因素:

            1、存儲(chǔ)設(shè)備的存取速度,即從存儲(chǔ)器讀出數(shù)據(jù)或數(shù)據(jù)寫入存儲(chǔ)器所需時(shí)間;

            2、CPU性能:1)時(shí)鐘頻率;2)每條指令所花的時(shí)鐘周期數(shù)(即CPI);3)指令條數(shù);

            3、系統(tǒng)結(jié)構(gòu),如并行處理結(jié)構(gòu)可增大吞吐量。

          吞吐率

            單位時(shí)間內(nèi)網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)量,也可以指單位時(shí)間內(nèi)處理客戶請(qǐng)求數(shù)量。它是衡量網(wǎng)絡(luò)性能的重要指標(biāo),通常情況下,吞吐率用“字節(jié)數(shù)/秒”來(lái)衡量,當(dāng)然,你可以用“請(qǐng)求數(shù)/秒”和“頁(yè)面數(shù)/秒”來(lái)衡量。其實(shí),不管是一個(gè)請(qǐng)求還是一個(gè)頁(yè)面,它的本質(zhì)都是在網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù),那么來(lái)表示數(shù)據(jù)的單位就是字節(jié)數(shù)。

            不過(guò)以不同的方式表達(dá)的吞吐量可以說(shuō)明不同層次的問(wèn)題。例如,以字節(jié)數(shù)/秒方式表示的吞吐量主要受網(wǎng)絡(luò)基礎(chǔ)設(shè)置、服務(wù)器架構(gòu)、應(yīng)用服務(wù)器制約;以請(qǐng)求數(shù)/秒方式表示的吞吐量主要受應(yīng)用服務(wù)器和應(yīng)用代碼的制約。

            但是從業(yè)務(wù)的角度看,吞吐率也可以用“業(yè)務(wù)數(shù)/小時(shí)或天”、“訪問(wèn)人數(shù)/小時(shí)或天”、“頁(yè)面訪問(wèn)量/小時(shí)或天”來(lái)衡量。例如,在銀行卡審批系統(tǒng)中,可以用“千件/小時(shí)”來(lái)衡量系統(tǒng)的業(yè)務(wù)處理能力。那么,從用戶的角度,一個(gè)表單提交可以得到一次審批。又引出來(lái)一個(gè)概念---事務(wù)。

          throughput
          吞吐率原指一個(gè)業(yè)務(wù)系統(tǒng)在單位時(shí)間內(nèi)提供的產(chǎn)量(或服務(wù)量)。在計(jì)算機(jī)或數(shù)據(jù)通信系統(tǒng),指的是單位時(shí)間內(nèi)通過(guò)某通信信道(a communication channel)或某個(gè)節(jié)點(diǎn)成功交付數(shù)據(jù)的平均速率,通常以每秒比特?cái)?shù)(bps, bits per second )為單位。
          吞吐率是一種關(guān)于計(jì)算機(jī)或數(shù)據(jù)通信系統(tǒng)(如網(wǎng)橋、路由器網(wǎng)關(guān)廣域網(wǎng)連接等)數(shù)據(jù)傳輸率的測(cè)度。吞吐率通常是對(duì)一個(gè)系統(tǒng)和它的部件處理傳輸數(shù)據(jù)請(qǐng)求能力的總體評(píng)價(jià)。例如,一個(gè)服務(wù)器的吞吐率依賴于它的處理器類型、網(wǎng)絡(luò)接口卡的類型、數(shù)據(jù)傳輸總線的大小、磁盤速度、內(nèi)存緩沖器的體積,以及軟件對(duì)這些部件進(jìn)行管理的有效程度。在通信系統(tǒng)中,這個(gè)測(cè)度通常基于每秒能處理的數(shù)據(jù)位數(shù)或分組的數(shù)目,它依賴于網(wǎng)絡(luò)的帶寬和交換部件(如路由器集線器)的速度。網(wǎng)絡(luò)上兩個(gè)端點(diǎn)設(shè)備間的吞吐率依賴于計(jì)算機(jī)、網(wǎng)絡(luò)接口卡和連接它們的網(wǎng)絡(luò)。
          吞吐率作為一個(gè)重要的衡量指標(biāo),最主要應(yīng)用在并行處理上,屬于系統(tǒng)結(jié)構(gòu)中最重要的一個(gè)變量,它的定義是:?jiǎn)挝粫r(shí)間的吞吐量。所以它的詳細(xì)定義參見(jiàn)吞吐量
          吞吐率在性能測(cè)試中指單位時(shí)間內(nèi)在網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)量。是衡量網(wǎng)絡(luò)性能的主要指標(biāo)。

          事務(wù)

            就是用戶某一步或幾步操作的集合。不過(guò),我們要保證它有一個(gè)完整意義。比如用戶對(duì)某一個(gè)頁(yè)面的一次請(qǐng)求,用戶對(duì)某系統(tǒng)的一次登錄,淘寶用戶對(duì)商品的一次確認(rèn)支付過(guò)程。這些我們都可以看作一個(gè)事務(wù)。那么如何衡量服務(wù)器對(duì)事務(wù)的處理能力。又引出一個(gè)概念----TPS

           

          TPS (Transaction Per second) 

          每秒鐘系統(tǒng)能夠處理事務(wù)或交易的數(shù)量,它是衡量系統(tǒng)處理能力的重要指標(biāo)。

           每秒事務(wù)處理量 - 性能測(cè)試的術(shù)語(yǔ)介紹

          TPS(Transaction Per Second)
          每秒鐘系統(tǒng)能夠處理的交易或事務(wù)的數(shù)量。它是衡量系統(tǒng)處理能力的重要指標(biāo)。TPS是LoadRunner中重要的性能參數(shù)指標(biāo)。

          點(diǎn)擊率(Hit Per Second

          點(diǎn)擊率可以看做是TPS的一種特定情況。點(diǎn)擊率更能體現(xiàn)用戶端對(duì)服務(wù)器的壓力。TPS更能體現(xiàn)服務(wù)器對(duì)客戶請(qǐng)求的處理能力。

          每秒鐘用戶向web服務(wù)器提交的HTTP請(qǐng)求數(shù)。這個(gè)指標(biāo)是web 應(yīng)用特有的一個(gè)指標(biāo);web應(yīng)用是“請(qǐng)求-響應(yīng)”模式,用戶發(fā)一個(gè)申請(qǐng),服務(wù)器就要處理一次,所以點(diǎn)擊是web應(yīng)用能夠處理的交易的最小單位。如果把每次點(diǎn)擊定義為一個(gè)交易,點(diǎn)擊率和TPS就是一個(gè)概念。容易看出,點(diǎn)擊率越大。對(duì)服務(wù)器的壓力也越大,點(diǎn)擊率只是一個(gè)性能參考指標(biāo),重要的是分析點(diǎn)擊時(shí)產(chǎn)生的影響。

          需要注意的是,這里的點(diǎn)擊不是指鼠標(biāo)的一次“單擊”操作,因?yàn)橐淮?#8220;單擊”操作中,客戶端可能向服務(wù)器發(fā)現(xiàn)多個(gè)HTTP請(qǐng)求。

           

          吞吐量指標(biāo)的作用

            再次將話題回歸到吞吐量上,在我們的性能測(cè)試中查看吞吐量對(duì)我們的測(cè)試有什么意義呢。

            1. 用戶協(xié)助設(shè)計(jì)性能測(cè)試場(chǎng)景,以及衡量性能測(cè)試場(chǎng)景是否達(dá)到了預(yù)期的設(shè)計(jì)目標(biāo):在設(shè)計(jì)性能測(cè)試場(chǎng)景時(shí),吞吐量可被用戶協(xié)助設(shè)計(jì)性能測(cè)試場(chǎng)景,根據(jù)估算的吞吐量數(shù)據(jù),可以對(duì)應(yīng)到測(cè)試場(chǎng)景的事務(wù)發(fā)生頻率,事務(wù)發(fā)生次數(shù)等;另外,在測(cè)試完成后,根據(jù)實(shí)際的吞吐量可以衡量測(cè)試是否達(dá)到了預(yù)期的目標(biāo)。

            2. 用于協(xié)助分析性能瓶頸:吞吐量的限制是性能瓶頸的一種重要表現(xiàn)形式,因此,有針對(duì)性地對(duì)吞吐量設(shè)計(jì)測(cè)試,可以協(xié)助盡快定位到性能冰晶所在位置。

           

          擴(kuò)展

          RBIrapid bottleneck identify

          Empirix公司提出的快速識(shí)別系統(tǒng)性能瓶頸的方法。該方法基于以下事實(shí)。

              1. 發(fā)現(xiàn)的80%系統(tǒng)的性能瓶頸都由吞吐量制約;

              2. 并發(fā)用戶數(shù)和吞吐量瓶頸之間存在一定的關(guān)聯(lián);

              3. 采用吞吐量測(cè)試可以更快速定位問(wèn)題。 

          通過(guò)不斷增加并發(fā)用戶數(shù)和吞吐量觀察系統(tǒng)的性能瓶頸。然后,從網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)、應(yīng)用服務(wù)器和代碼本身4個(gè)環(huán)節(jié)確定系統(tǒng)的的性能瓶頸。

           

            其實(shí),我講了這么多概念,我們無(wú)非是站在不同的角度去分解系統(tǒng)的性能,站在用戶的角度,服務(wù)器的角度、系統(tǒng)的各種角度。了解一個(gè)人需要多方面,了解一個(gè)系統(tǒng)也需要多方面。我在盡量把這些東西講的不枯燥,而且易懂。其實(shí),自己寫的過(guò)程也是思考的過(guò)程。


          posted on 2014-01-30 12:25 順其自然EVO 閱讀(4154) 評(píng)論(0)  編輯  收藏 所屬分類: 性能測(cè)試

          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 吐鲁番市| 湖州市| 双峰县| 曲松县| 临江市| 舒城县| 浏阳市| 沂源县| 潼关县| 黑水县| 郴州市| 黎川县| 临西县| 大埔县| 汝城县| 卓资县| 宁蒗| 栾川县| 新绛县| 宁明县| 望都县| 黄梅县| 繁峙县| 闵行区| 古浪县| 瑞安市| 清水县| 东城区| 乌拉特中旗| 大理市| 晋城| 梁山县| 习水县| 高台县| 陇西县| 昌都县| 澄迈县| 天峨县| 仙居县| 阿城市| 石城县|