首頁(yè) 培訓(xùn)網(wǎng) 最新資訊 熱門問(wèn)答

軟件測(cè)試

免費(fèi)試聽(tīng) 在線客服

您的位置: 深圳培訓(xùn)網(wǎng) > 軟件測(cè)試培訓(xùn)資訊 > 性能測(cè)試解惑之并發(fā)壓力(二)

性能測(cè)試解惑之并發(fā)壓力(二)

來(lái)源:教育聯(lián)展網(wǎng) | 發(fā)布時(shí)間: | 編輯:佚名

來(lái)源:51Testing軟件測(cè)試網(wǎng)


● 如何估算并發(fā)
那么我們?nèi)绾蝸?lái)估算這個(gè)并發(fā)值呢?
在此我們需要作出說(shuō)明,一般我們需要的數(shù)據(jù)應(yīng)該來(lái)自于實(shí)際數(shù)據(jù)(比如系統(tǒng)日志的記錄),這樣更可靠,只有當(dāng)系統(tǒng)新啟動(dòng)且無(wú)任何數(shù)據(jù)參考的時(shí)候我們才需要進(jìn)行估算。
比如我們測(cè)試地鐵大廳的性能情況,該如何去估算當(dāng)乘客進(jìn)入大廳時(shí),地鐵大廳的性能呢?下面以筆者經(jīng)常乘坐的地鐵5號(hào)線立水橋南站為例進(jìn)行估算,過(guò)程與數(shù)據(jù)僅供參考。
假定每天從該站乘坐地鐵的人數(shù)為5萬(wàn)人次,每天的早高峰為7-9點(diǎn),晚高峰為6-7點(diǎn),根據(jù)8/2原則,80%的乘客(人次)會(huì)在高峰期乘坐該站的地鐵,則平均每秒到達(dá)地鐵檢票口的人數(shù)為(50000×80%)/(3×60×60) = 3.7~=4人,當(dāng)然這個(gè)4人不能作為計(jì)算所用的并發(fā)值,因?yàn)閷?duì)此時(shí)的受壓入口檢票口來(lái)說(shuō),4只是每秒到達(dá)的壓力(即請(qǐng)求)數(shù)量,考慮到安檢、入口關(guān)閉等因素,實(shí)際堆積在檢票口的人數(shù)可能要大于這個(gè)數(shù)目,假定每個(gè)人需要3秒左右才能入站,則實(shí)際并發(fā)應(yīng)該為(4人/秒)×3秒=12。當(dāng)然我們必須指出,這種方法得到的情況并非極端值,因?yàn)榧词棺鳛樵缤砀叻?,人?shù)的分布也不是平均的(具體情況需要根據(jù)實(shí)際數(shù)據(jù)進(jìn)行分析),但對(duì)大部分系統(tǒng)的大部分場(chǎng)景,我們可以用(用戶總量/統(tǒng)計(jì)時(shí)間)×影響因子(一般為3,為經(jīng)驗(yàn)系數(shù))來(lái)進(jìn)行估算。
實(shí)際上,還有一種估算方法,而這種估算方法為國(guó)內(nèi)眾多書籍、文章反復(fù)轉(zhuǎn)載,其來(lái)源與Eric Man Wong在2004年公布的一篇“論文”《Method for Estimating the Number of Concurrent Users》,其核心公式如下:
C=nL/T
其中,C代表在線用戶,n代表執(zhí)行事務(wù)的用戶總數(shù),L代表每用戶的平均在線時(shí)間,T為待統(tǒng)計(jì)的總時(shí)間,依舊以地鐵入站的情況進(jìn)行估算,依舊考慮8/2原則,即n為50000*80%人,T為3小時(shí),L即我們?cè)诘罔F中停留的時(shí)間(從進(jìn)站到上車),假定為5分鐘,因此得到的公式為:
C=(50000人×80%×5min)/3×60min = 1111
并發(fā)數(shù)是1111,比前面一種算法要高的多,這是為什么呢?
實(shí)際上,后面這種統(tǒng)計(jì)方法是由一定的局限性與適用范圍的,對(duì)其統(tǒng)計(jì)的每個(gè)并發(fā)用戶而言,每個(gè)用戶所在線的時(shí)間(如上面的5min),并不一定是我們所需要的場(chǎng)景耗時(shí),該5分鐘應(yīng)該是整個(gè)大場(chǎng)景(如從進(jìn)站到離開),而我們通常所使用的場(chǎng)景往往包含了一連貫的子場(chǎng)景,如進(jìn)站、等待、上車等,因此,如果我們測(cè)試的場(chǎng)景是某一個(gè)具體的動(dòng)作,不建議采用這種公式(當(dāng)然,如果單獨(dú)為每個(gè)動(dòng)作估算時(shí)間也是可以的。)
從本質(zhì)上來(lái)說(shuō),兩種公式的統(tǒng)計(jì),結(jié)果都是一樣的,關(guān)鍵取決與統(tǒng)計(jì)口徑。
極限的問(wèn)題也是我們需要考慮的,數(shù)據(jù)的估算往往是一個(gè)大的工程,涉及到很多復(fù)雜的情況,比如用戶的進(jìn)入與離開,人流異常等,因此我們考慮的多為常規(guī)的情況,在一些特殊的情況下,用戶的峰值往往要大很多,此時(shí)需要去對(duì)極限情況下進(jìn)行估算。
此時(shí)的目的在于檢查系統(tǒng)的極限承載情況,如列車極限大承載2000人,站內(nèi)極限承載10000人是一樣的,超出這個(gè)極限,就需要采取一些緊急措施,比如限流(對(duì)應(yīng)到普通的系統(tǒng),就是設(shè)置特大連接數(shù),超出的必須等待)之類。
這種值的計(jì)算,不可能給出準(zhǔn)確值,可以根據(jù)實(shí)際情況,協(xié)商而定,比如把經(jīng)驗(yàn)系數(shù)更改為5,這種情況下,如果有日志或者統(tǒng)計(jì)數(shù)據(jù)予以支撐,會(huì)更加精確。
● 回答客戶的疑惑
面對(duì)客戶,經(jīng)常需要去解答一些問(wèn)題,常見(jiàn)的幾類疑惑如下:
1、客戶堅(jiān)持要求并發(fā)2000,怎么辦?
這個(gè)問(wèn)題非常關(guān)鍵,即上面所謂的闡述只是為了讓大家對(duì)并發(fā)等概念有個(gè)大體的理解,但我們的工作重心不是一來(lái)就跟客戶講理論,而是合理、有效、迅速地完成項(xiàng)目,因此,特別是一些項(xiàng)目的咨詢階段,如果客戶堅(jiān)持提出達(dá)到某個(gè)并發(fā)要求,我們首先需要看下這個(gè)情況產(chǎn)品能否支持,如果不支持,用修改架構(gòu)(比如增加服務(wù)器,公司的大部分產(chǎn)品都支持集群)來(lái)完成,如果還是沒(méi)法達(dá)到要求,我們?cè)賮?lái)跟客戶交流,從客戶能理解的方式,從客戶的角度去計(jì)算并發(fā),然后得到認(rèn)可就行了。當(dāng)然,解決這些問(wèn)題,需要我們對(duì)公司的產(chǎn)品性能基本比較了解(可以經(jīng)過(guò)產(chǎn)品的性能測(cè)試報(bào)告來(lái)了解,質(zhì)保將來(lái)會(huì)考慮出臺(tái)所有產(chǎn)品的性能指標(biāo)集合供參考),如果難度還是很大,可以申請(qǐng)質(zhì)保的支持。大家一起去解決這個(gè)問(wèn)題。
2、你們的系統(tǒng)能支持10000并發(fā)嗎?
一些客戶經(jīng)常提出非常高的并發(fā)要求,此類客戶通常對(duì)性能并不了解,或者之前有客戶對(duì)其做了錯(cuò)誤的解釋,此時(shí)我們需要解釋我們測(cè)試并發(fā)的概念:同時(shí)向服務(wù)器發(fā)出請(qǐng)求的虛擬用戶數(shù)。(而我們通常會(huì)采用嚴(yán)格的方法進(jìn)行場(chǎng)景測(cè)試:即采用集合點(diǎn)的方式進(jìn)行操作。這種方式也即前面介紹的狹義并發(fā)的概念。)
另外,并發(fā)值需要考慮實(shí)際情況,需要根據(jù)實(shí)際的需求進(jìn)行計(jì)算,與此同時(shí),并發(fā)的影響因素并非僅僅是軟件本身,還有網(wǎng)絡(luò)、架構(gòu)等等,TRS的產(chǎn)品性能測(cè)試往往給出單位機(jī)器的性能,用戶可以根據(jù)這個(gè)基礎(chǔ)值來(lái)構(gòu)造實(shí)際架構(gòu)。
3、你們的系統(tǒng)怎么才支持200并發(fā)?
并發(fā)的概念在于同時(shí)在處理某一件事情,而且系統(tǒng)一直保持這樣的一個(gè)強(qiáng)度,并不是說(shuō)總共只有200人,另外,我們測(cè)試的一般是單機(jī),也就是說(shuō),如果更好的性能要求,可以用集群的方式來(lái)獲得更優(yōu)的結(jié)果,目前TRS的產(chǎn)品基本都支持集群的部署架構(gòu)。需要注意的是,并發(fā)的支持除了軟件本身,還受到網(wǎng)絡(luò)、服務(wù)器性能等多方面原因的影響。
4、是否可以使用每秒處理事務(wù)來(lái)衡量。
性能測(cè)試的衡量指標(biāo)除了響應(yīng)時(shí)間,還有吞吐量、每秒點(diǎn)擊數(shù)、每秒PV、每秒事務(wù)處理能力等,因此我們可以用多種方式進(jìn)行衡量,在更大意義上,各個(gè)指標(biāo)間也存在一定的內(nèi)涵聯(lián)系,結(jié)合起來(lái)考慮更能夠檢查系統(tǒng)的性能。但受制于一些客觀原因(如定制),在之前的報(bào)告中,指標(biāo)衡量存在一定的限制。
5、響應(yīng)時(shí)間與并發(fā)、壓力是什么關(guān)系?這么操作的響應(yīng)怎么才6秒,太慢了,你們的產(chǎn)品性能不行??!
一般的,一定的并發(fā)下將對(duì)系統(tǒng)造成一定的壓力,而對(duì)每個(gè)并發(fā)(用戶)而言,所體現(xiàn)出來(lái)的性能多是直觀的響應(yīng)時(shí)間,在環(huán)境一定的情況下,響應(yīng)時(shí)間越快說(shuō)明系統(tǒng)性能越好。但此處需要清除一個(gè)問(wèn)題,假定一個(gè)用戶獲取的響應(yīng)時(shí)間是5秒,這5秒都在對(duì)系統(tǒng)產(chǎn)生壓力嗎?
后面這個(gè)是一個(gè)有趣而有意義的問(wèn)題,我們知道這個(gè)響應(yīng)時(shí)間是從用戶發(fā)出請(qǐng)求到接收到響應(yīng)的為止的總耗時(shí),如果我們使用httpwatch之類的工具,可以很清晰的看到時(shí)間消耗的分布區(qū)間,我們可以把這個(gè)問(wèn)題比作是向墻壁擊出一個(gè)球,從擊出到彈回來(lái)的時(shí)間即為響應(yīng)時(shí)間。
大家打過(guò)壁球嗎?打壁球的過(guò)程其實(shí)就完美的詮釋了用戶發(fā)起請(qǐng)求到接受響應(yīng)整個(gè)過(guò)程,可以我們可以把墻壁看作系統(tǒng),打球者就是用戶,球是用戶發(fā)出的請(qǐng)求,擊打一次球包含有三個(gè)動(dòng)作:擊出球、球接觸墻壁、收到彈回的球。三個(gè)過(guò)程加起來(lái)的總時(shí)間就是這個(gè)請(qǐng)求(打出一發(fā)球)所得到的響應(yīng),但很顯然,真正對(duì)系統(tǒng)產(chǎn)生壓力的動(dòng)作在于接觸墻壁的時(shí)間,大部分的時(shí)間消耗在空中,即球在空中飛行時(shí)的時(shí)間,而這個(gè)飛行時(shí)間并不受系統(tǒng)控制,對(duì)應(yīng)到常規(guī)系統(tǒng),就很可能是網(wǎng)絡(luò)在傳輸過(guò)程中出現(xiàn)了問(wèn)題。
這個(gè)壁球的例子實(shí)際上還可以解釋一些相關(guān)的概念,比如并發(fā)就是同時(shí)擊出多個(gè)球,系統(tǒng)(墻壁)所能承受的極限并發(fā)壓力就是墻壁的面積所能容納的壁球數(shù)量,假定墻壁面積可以容納1000個(gè)球,則墻壁瞬間可以接觸的球的數(shù)量就是1000個(gè),這個(gè)就是狹義并發(fā)的概念了,考慮到空中飛行,即將觸碰墻壁的球,理論上的廣義并發(fā)值要高于1000。擊球時(shí)的力度可以理解為客戶端的性能,性能好發(fā)球就快,否則就慢,只要系統(tǒng)性能沒(méi)有達(dá)到瓶頸(比如墻壁沒(méi)有壞),系統(tǒng)的性能是跟客戶端呈正比的,即擊球速度越快,返回越快。
因此,當(dāng)遇到客戶對(duì)響應(yīng)時(shí)間有疑問(wèn)時(shí),我們需要解釋的重點(diǎn)在于,壓力在于球接觸墻壁的瞬間,但性能測(cè)試考核的響應(yīng)時(shí)間確實(shí)包含了兩次飛行(發(fā)送與接受)的時(shí)間,而這個(gè)時(shí)間是受包含服務(wù)器性能、網(wǎng)絡(luò)性能、客戶端性能在內(nèi)的多因素影響的,相信客戶可以理解。
● 簡(jiǎn)單的結(jié)論
如果您覺(jué)得上面說(shuō)的東西過(guò)于繁瑣,以下基本概念可能更適合閱讀。
1、并發(fā)分為狹義并發(fā)與廣義并發(fā)兩種,狹義并發(fā)指同一時(shí)間點(diǎn)開始做某件事情,廣義并發(fā)指同一時(shí)間段正在做某件事情;
2、并發(fā)與被考察的場(chǎng)景是息息相關(guān)的,測(cè)試中所指的并發(fā)一般指同一時(shí)間段在做某件事情(被測(cè)事務(wù))的用戶數(shù),在嚴(yán)格測(cè)試的環(huán)境下,我們會(huì)要求所有用戶在同一時(shí)間點(diǎn)集合并執(zhí)行;
3、在線用戶與并發(fā)用戶不是一個(gè)概念,在線用戶包含了很多非測(cè)試事務(wù)用戶、空閑的客戶等,因此不能把在線的用戶全計(jì)作并發(fā)用戶,一般的并發(fā)用戶占在線用戶總量在10%~20%左右,當(dāng)然,這個(gè)值僅供參考,實(shí)際問(wèn)題需要實(shí)際分析。
4、理論上說(shuō)并發(fā)越大性能越好,但其取決與很多因素,比如網(wǎng)絡(luò)、服務(wù)器數(shù)量、服務(wù)器性能、系統(tǒng)架構(gòu)、軟硬件優(yōu)化等,另外,并發(fā)的計(jì)算需要在需求階段根據(jù)實(shí)際情況進(jìn)行估算,這樣得到的結(jié)果才是合理的。
5、幾個(gè)概念的再次說(shuō)明:
→ 并發(fā)用戶數(shù):同時(shí)在操作被考察事務(wù)的用戶數(shù)
→ 在線用戶數(shù):當(dāng)前被測(cè)系統(tǒng)中的活動(dòng)用戶數(shù)(包括考察事務(wù)與非考察事務(wù))
→ 平均響應(yīng)時(shí)間:每個(gè)用戶操作事務(wù)獲得的平均響應(yīng)時(shí)間(算術(shù)平均值)
→ 90%響應(yīng)時(shí)間:90%用戶平均響應(yīng)時(shí)間在此值范圍內(nèi)(取除去10%極高值后的極限值)
→ 平均事務(wù)數(shù):?jiǎn)挝粫r(shí)間完成的事務(wù)數(shù)(如登錄、首頁(yè)讀取等)
→ 平均吞吐量:?jiǎn)挝粫r(shí)間內(nèi)的數(shù)據(jù)傳輸量
→ 平均點(diǎn)擊數(shù):?jiǎn)挝粫r(shí)間完成的請(qǐng)求數(shù)量

→ PV:某時(shí)間段內(nèi)完成的頁(yè)面請(qǐng)求數(shù)量


教育聯(lián)展————專業(yè)的軟件測(cè)試咨詢服務(wù)平臺(tái)。
詳詢:王萍老師18988787201
詳詢:小文老師18988787201
深圳軟件測(cè)試培訓(xùn) 深圳軟件測(cè)試培訓(xùn)班
王萍老師 小文老師


課程精選:

中華考試網(wǎng)軟件測(cè)試培訓(xùn)》
教育軟件測(cè)試培訓(xùn)頻道》
《軟件測(cè)試培訓(xùn)課程——深圳川石
《深圳川石軟件性能測(cè)試培訓(xùn)》
《深圳川石企業(yè)性能測(cè)試(PL&LR)提升班
《持續(xù)集成自動(dòng)化測(cè)試UFT Selenium提升班》
《深圳源昊寶安軟件測(cè)試培訓(xùn)班》
《深圳凌岳軟件自動(dòng)化測(cè)試培訓(xùn)班》
《深圳博睿軟件安全測(cè)試培訓(xùn)》
深圳達(dá)內(nèi)軟件測(cè)試培訓(xùn)學(xué)?!?/a>

熱門機(jī)構(gòu)推薦

編輯推薦

全國(guó)分站 熱門機(jī)構(gòu)

北京軟件測(cè)試培訓(xùn) 上海軟件測(cè)試培訓(xùn) 廣州軟件測(cè)試培訓(xùn) 深圳軟件測(cè)試培訓(xùn) 杭州軟件測(cè)試培訓(xùn) 蘇州軟件測(cè)試培訓(xùn) 南京軟件測(cè)試培訓(xùn) 天津軟件測(cè)試培訓(xùn) 佛山軟件測(cè)試培訓(xùn) 南寧軟件測(cè)試培訓(xùn) 長(zhǎng)沙軟件測(cè)試培訓(xùn) 重慶軟件測(cè)試培訓(xùn) 太原軟件測(cè)試培訓(xùn) 青島軟件測(cè)試培訓(xùn) 寧波軟件測(cè)試培訓(xùn) 鄭州軟件測(cè)試培訓(xùn) 西安軟件測(cè)試培訓(xùn) 廈門軟件測(cè)試培訓(xùn) 武漢軟件測(cè)試培訓(xùn) 成都軟件測(cè)試培訓(xùn) 無(wú)錫軟件測(cè)試培訓(xùn) 濟(jì)南軟件測(cè)試培訓(xùn) 昆明軟件測(cè)試培訓(xùn) 貴陽(yáng)軟件測(cè)試培訓(xùn) 揚(yáng)州軟件測(cè)試培訓(xùn) 徐州軟件測(cè)試培訓(xùn) 珠海軟件測(cè)試培訓(xùn) 合肥軟件測(cè)試培訓(xùn) 長(zhǎng)春軟件測(cè)試培訓(xùn)

深圳博為峰教育廣州博為峰教育深圳中公優(yōu)就業(yè)南京博為峰教育

申請(qǐng)?jiān)嚶?tīng)名額

已有10254人申請(qǐng)免費(fèi)試聽(tīng)

01電話咨詢 |

QQ:
加盟合作:0755-83654572

今日已有25人申請(qǐng),本月限額500