jmeter 并發(fā)用戶數(shù),在線用戶數(shù)结榄,平均并發(fā) 峰值并發(fā)介紹:
【記錄以下兩個案例】
在線用戶數(shù)與并發(fā)用戶數(shù)的區(qū)別和比例關(guān)系
在線用戶數(shù):用戶同時在一定時間段的在線數(shù)量
并發(fā)用戶數(shù):某一時刻同時向服務(wù)器發(fā)送請求的用戶數(shù)
一般而言中贝,我們習(xí)慣以5-20的比率來推算并發(fā)用戶與在線用戶之間的關(guān)系。即臼朗,并發(fā)與在線的比例約為5%-20%
比如邻寿,某網(wǎng)站存在注冊用戶數(shù)為10W人,但同時在線最多1W人视哑,但這1W個人绣否,可能只有500人會瀏覽帖子,500人會進(jìn)行發(fā)帖挡毅,只有這1000個人對服務(wù)器才有交易蒜撮,那我們計(jì)算并發(fā)量的時候,就可以以1000為標(biāo)準(zhǔn)跪呈!
??????? 在實(shí)際的性能測試中段磨,經(jīng)常接觸到的與并發(fā)用戶數(shù)相關(guān)的概念還包括“并發(fā)用戶數(shù)”、“系統(tǒng)用戶數(shù)”和“同時在線用戶數(shù)”耗绿,下面用一個實(shí)際的例子來說明它們之間的差別苹支。
??????? 假設(shè)有一個OA系統(tǒng),該系統(tǒng)有2000個使用用戶——這就是說误阻,可能使用該OA系統(tǒng)的用戶總數(shù)是2000名债蜜,這個概念就是“系統(tǒng)用戶數(shù)”,該系統(tǒng)有一個“在線統(tǒng)計(jì)”功能(系統(tǒng)用一個全局變量記數(shù)所有已登錄的用戶)究反,從在線統(tǒng)計(jì)功能中可以得到策幼,最高峰時有500人在線(這個500就是一般所說的“同時在線人數(shù)”),那么奴紧,系統(tǒng)的并發(fā)用戶數(shù)是多少呢特姐?
??????? 根據(jù)我們對業(yè)務(wù)并發(fā)用戶數(shù)的定義,這500就是整個系統(tǒng)使用時最大的業(yè)務(wù)并發(fā)用戶數(shù)黍氮。當(dāng)然唐含,500這個數(shù)值只是表明在最高峰時刻有500個用戶登錄了系統(tǒng),并不表示實(shí)際服務(wù)器承受的壓力沫浆。因?yàn)榉?wù)器承受的壓力還與具體的用戶訪問模式相關(guān)捷枯。例如,在這500個“同時使用系統(tǒng)”的用戶中专执,考察某一個時間點(diǎn)淮捆,在這個時間上,假設(shè)其中40%的用戶在較有興致地看系統(tǒng)公告(注意:“看”這個動作是不會對服務(wù)端產(chǎn)生任何負(fù)擔(dān)的),20%的用戶在填寫復(fù)雜的表格(對用戶填寫的表格來說攀痊,只有在“提交”的時刻才會向服務(wù)端發(fā)送請求桐腌,填寫過程是不對服務(wù)端構(gòu)成壓力的),20%部分用戶在發(fā)呆(也就是什么也沒有做)苟径,剩下的20%用戶在不停地從一個頁面跳轉(zhuǎn)到另一個頁面——在這種場景下案站,可以說,只有20%的用戶真正對服務(wù)器構(gòu)成了壓力棘街。因此蟆盐,從上面的例子中可以看出,服務(wù)器實(shí)際承受的壓力不只取決于業(yè)務(wù)并發(fā)用戶數(shù)遭殉,還取決于用戶的業(yè)務(wù)場景石挂。
?????? 在實(shí)際的性能測試工作中,測試人員一般比較關(guān)心的是業(yè)務(wù)并發(fā)用戶數(shù)险污,也就是從業(yè)務(wù)角度關(guān)注究竟應(yīng)該設(shè)置多少個并發(fā)數(shù)比較合理痹愚,因此,在后面的討論中罗心,也是主要針對業(yè)務(wù)并發(fā)用戶數(shù)進(jìn)行討論里伯,而且城瞎,為了方便渤闷,直接將業(yè)務(wù)并發(fā)用戶數(shù)稱為并發(fā)用戶數(shù)。
??????? (1)? 計(jì)算平均的并發(fā)用戶數(shù): C = nL/T??? ??
??????? (2)? 并發(fā)用戶數(shù)峰值: C’ ≈ C+3根號C
???????? 公式(1)中脖镀,C是平均的并發(fā)用戶數(shù)飒箭;n是login session的數(shù)量;L是login session的平均長度蜒灰;T指考察的時間段長度弦蹂。
??????? 公式(2)則給出了并發(fā)用戶數(shù)峰值的計(jì)算方式中,其中强窖,C’指并發(fā)用戶數(shù)的峰值凸椿,C就是公式(1)中得到的平均的并發(fā)用戶數(shù)。該公式的得出是假設(shè)用戶的login session產(chǎn)生符合泊松分布而估算得到的翅溺。
實(shí)例:
??????? 假設(shè)有一個OA系統(tǒng)脑漫,該系統(tǒng)有3000個用戶,平均每天大約有400個用戶要訪問該系統(tǒng)咙崎,對一個典型用戶來說优幸,一天之內(nèi)用戶從登錄到退出該系統(tǒng)的平均時間為4小時,在一天的時間內(nèi)褪猛,用戶只在8小時內(nèi)使用該系統(tǒng)网杆。
則根據(jù)公式(1)和公式(2),可以得到:
????????????? ?C = 400*4/8 = 200
????????????? ?C’≈200+3*根號200 = 242
--------------------------------------------------------------------------------------------
另一實(shí)戰(zhàn)案例:
案例操作如下?
并發(fā)200,不限迭代次數(shù)碳却,同時在請求下面加RPS定時器队秩。
目的是在200線程下,將RPS逐步增加到1000/S,并持續(xù)運(yùn)行一段時間追城。
在線程下面添加TPS刹碾,HPS,響應(yīng)時間三種監(jiān)聽器
啟動jmeter座柱,運(yùn)行一段時間之后我們觀察一下監(jiān)聽器的數(shù)據(jù)圖表迷帜。
RPS?在793/s的時候,出現(xiàn)拐點(diǎn)色洞,請求曲線的角度開始收窄
TPS在?720/s左右開始出現(xiàn)劇波動戏锹,前期一直保持平穩(wěn)上升,可以認(rèn)為這是吞吐量的一個拐點(diǎn)
另外火诸,在1:03秒的時候锦针,也就是TPS達(dá)到907/S?的時候,事物開始出現(xiàn)錯誤置蜀。此時短暫出現(xiàn)百度頁面打不開的情況奈搜。
1:可以認(rèn)為此處就是一個性能瓶頸
2:有可能是百度對ip的訪問量做了限流,防止爬蟲
3:有可能是我當(dāng)前環(huán)境的問題盯荤,包括帶寬馋吗,內(nèi)存,cpu等等資源的限制秋秤,后期都需要考慮進(jìn)去
觀察分析聚合報(bào)告
在性能穩(wěn)定的情況下宏粤,才可以套用公式去計(jì)算出最大并發(fā)數(shù)
1:穩(wěn)定狀態(tài)下,最大?RPS= 793/S
2:穩(wěn)定情況下灼卢,響應(yīng)時間大約長期保持在160 ms
3:穩(wěn)定情況下绍哎,峰值并發(fā)數(shù)大約是 793*160(并發(fā)數(shù) = RPS * 響應(yīng)時間)=126
4:穩(wěn)定情況下,峰值并發(fā)=平均并發(fā) + 3*√平均并發(fā)鞋真,所以得出平均并發(fā)大約是?96
---------------------------------------------------------------------------------------------------------------------------------------------------------------
并發(fā)數(shù) = RPS * 響應(yīng)時間
結(jié)果驗(yàn)證:
200RPS保持1分鐘崇堰,查看聚合報(bào)告
首先我們就能看出,在200RPS下涩咖,平均TPS只有172海诲!
其次,平均并發(fā)數(shù) = 200*0.047 = 9.4? ?意味著我只需要9個線程抠藕,就可以在一秒內(nèi)釋放200RPS的壓力
可以算出每個線程每秒的請求數(shù)是?200/9.4 =21饿肺,也就是一個線程一秒內(nèi)最大迭代21次
反推每個請求的響應(yīng)時間 大約 是 1000/21 大約是 47ms
前后驗(yàn)證的結(jié)果都相符!
原文地址:https://testerhome.com/articles/20770