posts - 97,  comments - 5,  trackbacks - 0
          @import url(http://www.aygfsteel.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

          理解性能 ——LoadRunner 沒有告訴你的》之四   《轉(zhuǎn)載》

          本文是《LoadRunner沒有告訴你的》系列文章的第四篇,在這篇短文中,我將盡可能用簡潔清晰的文字寫下我對性能的看法,并澄清幾個容易混淆的概念,幫助大家更好的理解性能的含義。
          如何評價性能的優(yōu)劣用戶視角 vs. 系統(tǒng)視角
          對于最終用戶(End-User)來說,評價系統(tǒng)的性能好壞只有一個字——“。最終用戶并不需要關(guān)心系統(tǒng)當前的狀態(tài)——即使系統(tǒng)這時正在處理著成千上萬的請求,對于用戶來說,由他所發(fā)出的這個請求是他唯一需要關(guān)心的,系統(tǒng)對用戶請求的響應(yīng)速度決定了用戶對系統(tǒng)性能的評價。
          而對于系統(tǒng)的運營商和開發(fā)商來說,期望的是能夠讓盡可能多的用戶在任意時刻都擁有最好的體驗,這就要確保系統(tǒng)能夠在同一時間內(nèi)處理更多的用戶請求。正如在《理發(fā)店模型》一文中所描述的:系統(tǒng)的負載(并發(fā)用戶數(shù))與吞吐量(每秒事務(wù)數(shù))、響應(yīng)時間以及資源利用率(包括軟硬件資源)之間存在著一個此消彼長的關(guān)系。因此,從系統(tǒng)的運營商和開發(fā)商的角度來看,所謂的性能是一個整體的概念,是系統(tǒng)的負載與吞吐量、可接受的響應(yīng)時間以及資源利用率之間的平衡。
          換句話說,好的性能意味著更大的最佳并發(fā)用戶數(shù)(The Optimum Number of Concurrent Users)和 最大并發(fā)用戶數(shù)(The Maximum Number of Concurrent Users)。有關(guān)最佳/最大并發(fā)用戶數(shù)的概念請參見《理發(fā)店模型》一文。
          另外,從系統(tǒng)的視角來看,所需要關(guān)注的還包括三個與性能有關(guān)的屬性:可靠性(Reliability),可伸縮性(Scalability)和 可恢復(fù)性(Recoverability——我將會在本系列文章的第五篇無處不在的性能測試中專門討論這三個屬性的含義和相關(guān)的實踐經(jīng)驗。
           
          響應(yīng)時間

           
          上面這張圖引自段念兄的一份講義,不過我略作了些修改。從圖中我們可以清楚的看到一個請求的響應(yīng)時間是由幾部分時間組成的,包括
          C1:用戶請求發(fā)出前在客戶端需要完成的預(yù)處理所需要的時間;
          C2:客戶端收到服務(wù)器返回的響應(yīng)后,對數(shù)據(jù)進行處理并呈現(xiàn)所需要的時間;
          A1Web/App Server 對請求進行處理所需要的時間;
          A2DB Server 對請求進行處理所需的時間;
          A3Web/App Server 對 DB Server 返回的結(jié)果進行處理所需的時間;
          N1:請求由客戶端發(fā)出并達到Web/App Server 所需要的時間;
          N2:如果需要進行數(shù)據(jù)庫相關(guān)的操作,由Web/App Server 將請求發(fā)送至DB Server 所需要的時間;
          N3DB Server 完成處理并將結(jié)果返回Web/App Server 所需的時間;
          N4Web/App Server 完成處理并將結(jié)果返回給客戶端所需的時間;
          從用戶的角度來看,響應(yīng)時間=(C1+C2)+(A1+A2+A3)+(N1+N2+N3+N4);但是從系統(tǒng)的角度來看,響應(yīng)時間只包括(A1+A2+A3)+(N1+N2+N3+N4)
          在理解了響應(yīng)時間的組成之后,可以幫助我們通過對響應(yīng)時間的分析來更好的識別和定位系統(tǒng)的性能瓶頸。
           
          吞吐量 vs. 吞吐量
          在不同的測試工具中,對于吞吐量(Throughput)會有不同的解釋。例如,在LoadRunner中,這個指標是以字節(jié)數(shù)為單位來衡量網(wǎng)絡(luò)吞吐量的,而在JMeter中則是以事務(wù)數(shù)/秒為單位來衡量系統(tǒng)的響應(yīng)能力的。不過在大多數(shù)英文的性能測試方面的書籍或資料中,吞吐量的定義使用的是后者。
           
          并發(fā)用戶數(shù) ≠ 每秒請求數(shù)
          這是兩個容易讓初學者混淆的概念。
          簡單說,當你在性能測試工具或者腳本中設(shè)置了100并發(fā)用戶數(shù)后,并不能期望著一定會有每秒100個請求發(fā)給服務(wù)器。事實上,對于一個虛擬用戶來說,每秒發(fā)出多少請求只跟服務(wù)器返回響應(yīng)的速度有關(guān)。如果虛擬用戶在0.5秒內(nèi)就收到了響應(yīng),那么它會立即發(fā)出第二個請求;而如果要一直等待3秒才能得到響應(yīng),它將會一直等到收到響應(yīng)后才發(fā)出第二個請求。也就是說,并發(fā)用戶數(shù)的設(shè)置只是保證服務(wù)器在任一時刻都有100個請求需要處理,而并不一定是保證每秒中發(fā)送100個請求給服務(wù)器。
          所以,只有當響應(yīng)時間恰好是1秒時,并發(fā)用戶數(shù)才會等于每秒請求數(shù);否則,每秒請求數(shù)可能大于并發(fā)用戶數(shù)或小于并發(fā)用戶數(shù)。



          天貓 軟件自動化測試開發(fā)

          posted on 2013-09-25 17:58 zouhui 閱讀(139) 評論(0)  編輯  收藏 所屬分類: 2.軟件測試 性能自動化
          <2013年9月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(2)

          隨筆分類(94)

          隨筆檔案(94)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 威海市| 潞西市| 信阳市| 灌阳县| 宜兴市| 公主岭市| 萨嘎县| 清丰县| 神农架林区| 资中县| 孝感市| 阿拉尔市| 富顺县| 婺源县| 卓尼县| 乌兰浩特市| 如东县| 齐河县| 濉溪县| 瑞安市| 孟津县| 乌兰浩特市| 永吉县| 大安市| 缙云县| 昌黎县| 孟津县| 高陵县| 都匀市| 兖州市| 额尔古纳市| 阳曲县| 莫力| 渝北区| 满洲里市| 尼木县| 霍山县| 乡城县| 南城县| 花垣县| 定日县|