并发量得计算方式:
并發(fā)量得計(jì)算方式:
吞吐量/(總請(qǐng)求響應(yīng)時(shí)間+真實(shí)用戶總思考時(shí)間)=并發(fā)量/(請(qǐng)求響應(yīng)時(shí)間+思考時(shí)間)
1小時(shí)內(nèi)用戶登錄8000次,登錄響應(yīng)時(shí)間為5s,思考時(shí)間5s,計(jì)算并發(fā)量。
加thinktime:
8000/3600=并發(fā)量/(5+5)=TPS ,并發(fā)量=22.2
不加thinktime:
8000/3600=并發(fā)量/(5+5)=TPS,并發(fā)量=11.1
峰值計(jì)算:
并發(fā)量(峰值)=并發(fā)量+3*Sprt(并發(fā)量)
首先我基于對(duì)你的理解是的是“首頁(yè)并發(fā)訪問(wèn)數(shù)”(如果理解不對(duì),是首頁(yè)并發(fā)用戶數(shù),也可以根據(jù)下面理解轉(zhuǎn)換)
你只提到了首頁(yè),訪問(wèn)首頁(yè)只是業(yè)務(wù)場(chǎng)景之一,需要你考量所有業(yè)務(wù)場(chǎng)景。不同網(wǎng)站的業(yè)務(wù)場(chǎng)景不同。所以你需要根據(jù)以下理解,得出自己網(wǎng)站的場(chǎng)景和計(jì)算結(jié)果。
一些給出涉及概念:
1.業(yè)務(wù)并發(fā)用戶數(shù);2.最大并發(fā)訪問(wèn)數(shù);3.系統(tǒng)用戶數(shù);4.同時(shí)在線用戶數(shù);
假設(shè)一個(gè)OA系統(tǒng)有1000用戶,這是系統(tǒng)用戶數(shù);最高峰同時(shí)有500人在線,是“同時(shí)在線人數(shù)”,也稱作“最大業(yè)務(wù)并發(fā)用戶數(shù)”;500個(gè)同時(shí)使用系統(tǒng)用戶中20%查看系統(tǒng)公告,不構(gòu)成壓力;20%填寫表格(只在提交時(shí)才會(huì)請(qǐng)求,填寫對(duì)服務(wù)器不構(gòu)成壓力);40%在發(fā)呆(什么都沒(méi)做);20%用戶不停從一個(gè)頁(yè)面跳轉(zhuǎn)另一個(gè)頁(yè)面(只有這20%對(duì)服務(wù)器產(chǎn)生了壓力)。
說(shuō)明服務(wù)器實(shí)際壓力,能承受的最大并發(fā)訪問(wèn)數(shù),既取決于業(yè)務(wù)并發(fā)用戶數(shù),還取決于用戶的業(yè)務(wù)場(chǎng)景,這些可以通過(guò)對(duì)服務(wù)器日志的分析得到。
一般只需要分析出典型業(yè)務(wù)(用戶常用,最關(guān)注的業(yè)務(wù)操作)
給出一個(gè)估算業(yè)務(wù)并發(fā)用戶數(shù)的公式(測(cè)試人員一般只關(guān)心業(yè)務(wù)并發(fā)用戶數(shù))
C=nL/T
C^=C+3×(C的平方根)
C是平均的業(yè)務(wù)并發(fā)用戶數(shù)、n是login session的數(shù)量、L是login session的平均長(zhǎng)度、T是指考察的時(shí)間段長(zhǎng)度、C^是指業(yè)務(wù)并發(fā)用戶數(shù)的峰值。
該公式的得出是假設(shè)用戶的login session產(chǎn)生符合泊松分布而估算得到。
假設(shè)OA系統(tǒng)有1000用戶,每天400個(gè)用戶發(fā)訪問(wèn),每個(gè)登錄到退出平均時(shí)間2小時(shí),在1天時(shí)間內(nèi)用戶只在8小時(shí)內(nèi)使用該系統(tǒng)。
C=400×2/8=100
C^=100+3×(100的平方根)=100+3×10=130
另外,如果知道平均每個(gè)用戶發(fā)出的請(qǐng)求數(shù)u,則系統(tǒng)吞吐量可以估算為u×C
請(qǐng)注意:精確估算,還要考慮用戶業(yè)務(wù)操作存在一定的時(shí)間集中性(比如上班后1小時(shí)內(nèi)是OA系統(tǒng)高峰期),采用公式計(jì)算仍然會(huì)存在偏差。針對(duì)例子OA系統(tǒng)可以把1小時(shí)設(shè)定為考察時(shí)間的粒度,將一天8小時(shí)劃分為8個(gè)區(qū)間,這樣可以解決業(yè)務(wù)操作存在集中性問(wèn)題,更趨于精準(zhǔn),偏差更小。
很難,因?yàn)橥瑫r(shí)在線人數(shù)不代表所有人同時(shí)都在并發(fā)操作。如果要知道最大支持的并發(fā)數(shù)目,需要做一些估算,做什么類型的網(wǎng)站,讀寫操作的比例等。
網(wǎng)站性能的指標(biāo),簡(jiǎn)單google了下,不是很全,但很有代表性(對(duì)原文作者表示感謝,雖然不知道是誰(shuí))
1、通用指標(biāo)(指Web應(yīng)用服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器必需測(cè)試項(xiàng)):
* ProcessorTime: 指服務(wù)器CPU占用率,一般 平均達(dá)到70%時(shí),服務(wù)就接近飽和;
* Memory Available Mbyte : 可用內(nèi)存數(shù),如果測(cè)試時(shí)發(fā)現(xiàn)內(nèi)存有變化情況也要注意,如果是內(nèi)存泄露則比較嚴(yán)重;
* Physicsdisk Time : 物理磁盤讀寫時(shí)間情況;
2、Web服務(wù)器指標(biāo):
* Avg Rps: 平均每秒鐘響應(yīng)次數(shù)=總請(qǐng)求時(shí)間 / 秒數(shù);
* Avg time to last byte per terstion (mstes):平均每秒業(yè)務(wù)角本的迭代次數(shù) ,有人會(huì)把這兩者混淆;
* Successful Rounds:成功的請(qǐng)求;
* Failed Rounds :失敗的請(qǐng)求;
* Successful Hits :成功的點(diǎn)擊次數(shù);
* Failed Hits :失敗的點(diǎn)擊次數(shù);
* Hits Per Second :每秒點(diǎn)擊次數(shù);
* Successful Hits Per Second :每秒成功的點(diǎn)擊次數(shù);
* Failed Hits Per Second :每秒失敗的點(diǎn)擊次數(shù);
* Attempted Connections :嘗試鏈接數(shù);
3、數(shù)據(jù)庫(kù)服務(wù)器指標(biāo):
* User 0 Connections :用戶連接數(shù),也就是數(shù)據(jù)庫(kù)的連接數(shù)量;
* Number of deadlocks:數(shù)據(jù)庫(kù)死鎖;
* Butter Cache hit :數(shù)據(jù)庫(kù)Cache的命中情況;
知道一個(gè)網(wǎng)站首頁(yè)的并發(fā)量,能推算出該網(wǎng)站能容納多少人同時(shí)在線嗎?
答:不能!因?yàn)榫W(wǎng)站不止首頁(yè)一個(gè)功能,如果登錄功能只能容納10個(gè)人而且是瓶頸的話,那么說(shuō)明網(wǎng)站只能容納10個(gè)人,網(wǎng)站的范圍太大了。
衡量網(wǎng)站性能最直觀的指標(biāo)就是:
1)能同時(shí)承受多少人訪問(wèn)該網(wǎng)站。
2)承受這么多人訪問(wèn)的時(shí)候,響應(yīng)時(shí)間是什么樣的?
樓上網(wǎng)易的大神已經(jīng)給出了很好的解決思路,在這我也說(shuō)說(shuō)我自己的估算思路:
當(dāng)我們?cè)谟懻摗安l(fā)量”的時(shí)候,我們實(shí)質(zhì)上討論的是某一個(gè)業(yè)務(wù)場(chǎng)景中的并發(fā)量,這里的業(yè)務(wù)場(chǎng)景可以是:促銷/秒殺的業(yè)務(wù)場(chǎng)景、或 早上8:00~9:00的業(yè)務(wù)場(chǎng)景、或 單位時(shí)間中60%負(fù)載集中的業(yè)務(wù)場(chǎng)景。
總結(jié)
- 上一篇: ubuntu搭建ARL
- 下一篇: PHP文件上传 (以上传txt文件为例)