吞吐率弟塞、吞吐量凭峡、TPS、性能測試决记,紙上不談兵-構(gòu)建高性能Web站點(diǎn)

一摧冀、吞吐率

我們一般使用單位時間內(nèi)服務(wù)器處理的請求數(shù)來描述其并發(fā)處理能力。稱之為吞吐率(Throughput)系宫,單位是 “req/s”索昂。吞吐率特指Web服務(wù)器單位時間內(nèi)處理的請求數(shù)。

比如Apache 的 mod_status 模塊提供的如下統(tǒng)計

另一種描述扩借,吞吐率是楼镐,單位時間內(nèi)網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)量,也可以指單位時間內(nèi)處理客戶請求數(shù)量往枷。它是衡量網(wǎng)絡(luò)性能的重要指標(biāo)框产。通常情況下,吞吐率“字節(jié)數(shù)/秒”來衡量错洁。當(dāng)然你也可以用“請求數(shù)/秒”和“頁面數(shù)/秒”來衡量秉宿。其實(shí)不管一個請求還是一個頁面,它的本質(zhì)都是在網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)屯碴,那么用來表述數(shù)據(jù)的單位就是字節(jié)數(shù)描睦。

二、吞吐量

吞吐量导而,是指在一次性能測試過程中網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)量的總和忱叭。

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

提示奔坟,用吞吐量來衡量一個系統(tǒng)的輸出能力是極其不準(zhǔn)確的,用個最簡單的例子說明搭盾,一個水龍頭開一天一夜,流出10噸水婉支;10個水龍頭開1秒鐘鸯隅,流出0.1噸水。當(dāng)然是一個水龍頭的吞吐量大向挖。你能說1個水龍頭的出水能力是10個水龍頭的強(qiáng)蝌以?所以,我們要加單位時間何之,看誰1秒鐘的出水量大跟畅。這就是吞吐率。

三溶推、事務(wù)徊件,TPS(Transaction Per second)

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

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

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

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

需要注意的是仅讽,這里的點(diǎn)擊不是指鼠標(biāo)的一次“單擊”操作陶缺,因?yàn)橐淮巍皢螕簟辈僮髦校蛻舳丝赡芟蚍?wù)器發(fā)現(xiàn)多個HTTP請求洁灵。

四饱岸、吞吐量、吞吐率的意義

  • 吞吐量的限制是性能瓶頸的一種重要表現(xiàn)形式徽千,因此苫费,有針對地對吞吐量設(shè)計測試,可以協(xié)助盡快定位到性能冰晶所在的位置
  • 80%系統(tǒng)的性能瓶頸都是由吞吐量制約
  • 并發(fā)用戶和吞吐量瓶頸之間存在一定的關(guān)聯(lián)
  • 通過不斷增加并發(fā)用戶數(shù)和吞吐量觀察系統(tǒng)的性能瓶頸双抽。然后百框,從網(wǎng)絡(luò)、數(shù)據(jù)庫牍汹、應(yīng)用服務(wù)器和代碼本身4個環(huán)節(jié)確定系統(tǒng)的性能瓶頸铐维。

五、吞吐率和壓力測試

單從定義來看慎菲,吞吐率描述了服務(wù)器在實(shí)際運(yùn)行期間單位時間內(nèi)處理的請求數(shù)方椎,然而,我們更加關(guān)心的是服務(wù)器并發(fā)處理能力的上限钧嘶,也就是單位時間內(nèi)服務(wù)器能夠處理的最大請求數(shù)棠众,即最大吞吐率。

所以我們普遍使用“壓力測試”的方法有决,通過模擬足夠多數(shù)目的并發(fā)用戶闸拿,分別持續(xù)發(fā)送一定的HTTP請求,并統(tǒng)計測試持續(xù)的總時間书幕,計算出基于這種“壓力”下的吞吐率新荤,即為一個平均計算值

!台汇!注意

  • 在Web服務(wù)器的實(shí)際工作中苛骨,其處理的HTTP請求通常包括對很多不同資源的請求,也就是請求不同的URL苟呐,
    比如這些請求有的是獲取圖片痒芝,有的是獲取動態(tài)內(nèi)容,顯然服務(wù)器處理這些請求所花費(fèi)的時間各不相同牵素,而這些請求的不同時間組成比例又是不確定的严衬。這就是實(shí)際情況下的吞吐率。

  • 所以笆呆,我們 對于同一個特定有代表性的請求進(jìn)行壓力測試请琳,然后對多個請求的吞吐率按照比例計算加權(quán)平均值粱挡。

  • Web服務(wù)器并發(fā)能力強(qiáng)弱的關(guān)鍵便是在于如何計算針對不同的請求性質(zhì)來設(shè)計最優(yōu)并發(fā)策略。在一定程度上使得Web服務(wù)器的性能無法充分發(fā)揮俄精,這很容易理解询筏,就像銀行對不同業(yè)務(wù)設(shè)立不同的窗口一樣,這些窗口的服務(wù)員分別熟悉自己的窗口業(yè)務(wù)竖慧∠犹祝可以未不同的客戶分別快速辦理業(yè)務(wù),但是如果讓這些窗口都可以辦理所有業(yè)務(wù)测蘑,也就是客戶可以去任何窗口辦理任何業(yè)務(wù),那會是怎么樣呢康二?沒有幾個銀行業(yè)務(wù)員會對所有業(yè)務(wù)都輕車熟路碳胳,這樣勢必會影響到整體的業(yè)務(wù)辦理速度。

六沫勿、壓力測試的前提

吞吐率性能測試的前提

  • 并發(fā)用戶數(shù)
  • 總請求數(shù)
  • 請求資源描述

壓力測試的描述一般包括兩個部分挨约,即并發(fā)用戶數(shù)和總請求數(shù),也就是模擬多少用戶同時向服務(wù)器發(fā)送多少請求产雹。

請求性質(zhì)則是對請求的URL所代表的資源的描述诫惭,比如1KB大小的靜態(tài)文件,或者包含10次數(shù)據(jù)庫查詢的動態(tài)內(nèi)容等蔓挖。

1夕土、 并發(fā)用戶數(shù)

并發(fā)用戶數(shù)就是指在某一時刻同時向服務(wù)器發(fā)送請求的用戶總數(shù)。

假如100個用戶同時向服務(wù)器分別進(jìn)行10次請求瘟判,與1個用戶向服務(wù)器連續(xù)進(jìn)行1000次請求怨绣。兩個的效果一樣么?

一個用戶向服務(wù)器連續(xù)進(jìn)行1000次請求的過程中拷获,任何時刻服務(wù)器的網(wǎng)卡接受緩存區(qū)中只有來自該用戶的1個請求篮撑,而100個用戶同時向服務(wù)器分別進(jìn)行10次請求的過程中,服務(wù)器網(wǎng)卡接收緩沖區(qū)中最多有100個等待處理的請求匆瓜,顯然這時候服務(wù)器的壓力更大赢笨。

經(jīng)常有人說某個Web服務(wù)器能支持多少并發(fā)數(shù),除此之外沒有任何上下文驮吱,這讓很多人摸不著頭腦茧妒,人們常常把并發(fā)用戶數(shù)和吞吐率混淆,他們并不是一回事左冬。

一個服務(wù)器最多支持多少并發(fā)用戶數(shù)呢嘶伟?

我們可以說,這個柜臺支持的最大并發(fā)數(shù)為10又碌,因?yàn)榍『迷谶@個并發(fā)數(shù)下九昧,柜臺業(yè)務(wù)開展的非常成功绊袋。顧客們都對服務(wù)時間非常滿意,而此時代表業(yè)務(wù)辦理次數(shù)的柜臺吞吐率也比較高铸鹰,商場和顧客們實(shí)現(xiàn)雙贏癌别。

可見,通常所講的最大并發(fā)數(shù)是有一定利益前提的蹋笼,那就是服務(wù)器和用戶雙方所期待的最大收益展姐,服務(wù)器希望支持高并發(fā)數(shù)及高吞吐率,而用戶不管那么多剖毯,只希望等待較少的時間圾笨,或者得到更快的下載速度。

所以得出最大并發(fā)數(shù)的意義逊谋,在于了解服務(wù)器的承載能力擂达,并且結(jié)合用戶規(guī)模考慮適當(dāng)?shù)臄U(kuò)展方案胶滋。

對于同一域名下URL的并發(fā)下載數(shù)是有最大限制的板鬓,具體限制視瀏覽器的不同而不同。
一個真實(shí)的用戶可能會給服務(wù)器帶來兩個或更多的并發(fā)用戶的壓力究恤,一些高明的用戶還可以通過一些方法來修改瀏覽器的并發(fā)數(shù)限制俭令。

2、請求等待時間

  • 用戶平均請求等待時間
  • 服務(wù)器平均請求處理時間

用戶平均請求等待時間主要用戶衡量服務(wù)器在一定并發(fā)用戶數(shù)的情況下部宿,對于單個用戶的服務(wù)質(zhì)量
服務(wù)器平均請求處理時間與前者相比抄腔,則用戶衡量服務(wù)器的整體服務(wù)質(zhì)量,它其實(shí)就是吞吐率的倒數(shù)理张。

七妓柜、壓力測試

Apache 附帶的ab,ab可以直接在web服務(wù)器本地發(fā)起測試請求涯穷。

1棍掐、吞吐率隨并發(fā)用戶數(shù)變化的曲線圖

2、服務(wù)器平均請求處理時間隨并發(fā)用戶數(shù)變化的曲線圖
當(dāng)并發(fā)用戶數(shù)超過150 之后拷况,請求的平均等待時間大幅度增加作煌,當(dāng)并發(fā)用戶達(dá)到200后,等待時間開始急劇增加赚瘦。

3粟誓、用戶平均請求等待時間隨并發(fā)用戶數(shù)變化的曲線圖

八、總結(jié)

針對起意,吞吐量鹰服,吞吐率,TPS的測試,都需要指明單位時間悲酷。

以上測試忽略服務(wù)器硬件配置套菜,所以性能測試結(jié)果也不側(cè)重于它的絕對值意義,我們的目的是探討如何測量性能以及如何根據(jù)不同的場景來優(yōu)化性能设易。

以上測試使用硬件為

CPU: Intel(R) Xeon(R) CPU 1.60GHz
內(nèi)存:4GB
硬盤轉(zhuǎn)速: 15kr/min

以上幾個指標(biāo)的測試逗柴,主要是為了提升服務(wù)器的處理效率,為構(gòu)建高可用的Web站點(diǎn)做準(zhǔn)備顿肺。

九戏溺、下期內(nèi)容

影響 吞吐量,吞吐率屠尊,TPS指標(biāo)的因素旷祸,除了服務(wù)器的硬件配置,就剩下并發(fā)策略了讼昆。

簡單地說托享,并發(fā)策略的設(shè)計就是在服務(wù)器同時處理較多請求的時候,如何合理協(xié)調(diào)并充分利用CPU計算和I/O請求控淡,使其在較大并發(fā)用戶數(shù)的情況下提供較高的吞吐率

并不存在一個對所有性質(zhì)的請求都高效的并發(fā)策略

如需知道更多嫌吠,請聽下回分解止潘。

參考:

性能測試知多少--吞吐量
構(gòu)建高性能Web站點(diǎn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末掺炭,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子凭戴,更是在濱河造成了極大的恐慌涧狮,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件么夫,死亡現(xiàn)場離奇詭異者冤,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)档痪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門涉枫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人腐螟,你說我怎么就攤上這事愿汰。” “怎么了乐纸?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵衬廷,是天一觀的道長。 經(jīng)常有香客問我汽绢,道長吗跋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮跌宛,結(jié)果婚禮上酗宋,老公的妹妹穿的比我還像新娘。我一直安慰自己秩冈,他們只是感情好本缠,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著入问,像睡著了一般丹锹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上芬失,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天楣黍,我揣著相機(jī)與錄音,去河邊找鬼棱烂。 笑死租漂,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的颊糜。 我是一名探鬼主播哩治,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼衬鱼!你這毒婦竟也來了业筏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤鸟赫,失蹤者是張志新(化名)和其女友劉穎蒜胖,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抛蚤,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡台谢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了岁经。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片朋沮。...
    茶點(diǎn)故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖缀壤,靈堂內(nèi)的尸體忽然破棺而出樊拓,到底是詐尸還是另有隱情,我是刑警寧澤诉位,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布骑脱,位于F島的核電站,受9級特大地震影響苍糠,放射性物質(zhì)發(fā)生泄漏叁丧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拥娄。 院中可真熱鬧蚊锹,春花似錦、人聲如沸稚瘾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽摊欠。三九已至丢烘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間些椒,已是汗流浹背播瞳。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留免糕,地道東北人赢乓。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像石窑,于是被迫代替她去往敵國和親牌芋。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容