日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

性能测试中的二八原则

發(fā)布時(shí)間:2024/4/24 综合教程 44 生活家
生活随笔 收集整理的這篇文章主要介紹了 性能测试中的二八原则 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在生活中,做任何事情之前,最好先確定一個(gè)目標(biāo)。

同樣的,在我們?nèi)粘W鲂阅軠y(cè)試之前,最好把本次預(yù)期性能指標(biāo)確定下來(lái),沒(méi)有預(yù)期指標(biāo)的衡量,將無(wú)法評(píng)估測(cè)試結(jié)果數(shù)據(jù)是否滿足預(yù)期。比如以下這樣的指標(biāo):

接口

預(yù)期TPS

查詢接口

1000

入庫(kù)接口

2000

在實(shí)際工作中呢,最理想的情況是,開發(fā)/產(chǎn)品/項(xiàng)目經(jīng)理已經(jīng)提前確定好了性能指標(biāo),然后把指標(biāo)明確的告訴你。

但是理想很豐滿,現(xiàn)實(shí)很骨感,根據(jù)我多年的性能測(cè)試經(jīng)驗(yàn)來(lái)看,大多數(shù)提性能需求的人,大多是不太懂性能的,所以根本不會(huì)有指標(biāo)的,或者雖然有指標(biāo),但是是拍腦袋決定的,沒(méi)有任何依據(jù)。

所以作為一個(gè)測(cè)試人員,很有必要去通過(guò)一些數(shù)據(jù)分析,在測(cè)試之前就先明確一個(gè)相對(duì)科學(xué)的指標(biāo),這樣測(cè)試才會(huì)更加有價(jià)值。

一般來(lái)講,我們將壓測(cè)的項(xiàng)目分為兩類,一種是老項(xiàng)目,一種新項(xiàng)目。

先看看老項(xiàng)目,老項(xiàng)目是指項(xiàng)目已經(jīng)上線了,并且已經(jīng)運(yùn)行了一段時(shí)間,這時(shí)候會(huì)產(chǎn)生一些歷史數(shù)據(jù),可以通過(guò)以下手段對(duì)歷史數(shù)據(jù)進(jìn)行分析

1、業(yè)務(wù)監(jiān)控系統(tǒng)

在一些大廠,或者一些發(fā)展比較成熟的公司,大多都有各種各樣的業(yè)務(wù)監(jiān)控系統(tǒng),定期監(jiān)控各業(yè)務(wù)模塊核心接口的調(diào)用量、平均耗時(shí)等等,一般是以分鐘級(jí)別做監(jiān)控,如下圖

我們可以在系統(tǒng)里查看過(guò)去一周(或者一個(gè)月)內(nèi),接口調(diào)用量最高的那一天,然后再找到當(dāng)天中接口調(diào)用量最高的時(shí)間點(diǎn)(分鐘級(jí)別),比如說(shuō)是在12:10調(diào)用量為10000,那么我們?cè)贀Q算為每秒調(diào)用量10000/60=166,因此可以確定這個(gè)接口tps只要達(dá)到166即可滿足。

2、日志

有的公司(大多數(shù)都是創(chuàng)業(yè)型公司)根本沒(méi)有上述的業(yè)務(wù)監(jiān)控系統(tǒng),那有沒(méi)有辦法去評(píng)估預(yù)期指標(biāo)呢。

方法也是有的,那就是通過(guò)中間件的日志,每個(gè)中間件都有訪問(wèn)日志。比如Nginx的access.log,該日志中詳細(xì)記錄了每個(gè)HTTP請(qǐng)求的訪問(wèn)時(shí)間、url、響應(yīng)狀態(tài)碼、響應(yīng)時(shí)間等,如下圖

有了這些數(shù)據(jù)就好說(shuō)了,我們可以通過(guò)一些腳本(自己編寫或者找運(yùn)維幫忙),統(tǒng)計(jì)出每個(gè)接口在哪個(gè)時(shí)間段調(diào)用最高,調(diào)用量峰值是多少。根據(jù)峰值數(shù)據(jù),最終可以計(jì)算出每秒的調(diào)用量,然后可以將這個(gè)指標(biāo)定為接口的預(yù)期TPS。

接下來(lái)我們重點(diǎn)說(shuō)一下新項(xiàng)目,也是在實(shí)際工作中遇到最多的情況。

新項(xiàng)目是還沒(méi)有上線,在上線前希望先進(jìn)行一輪壓測(cè),評(píng)估項(xiàng)目性能是否能支撐當(dāng)前的用戶,這個(gè)時(shí)候性能預(yù)期指標(biāo)更為重要。但是由于是新項(xiàng)目,線上并沒(méi)有任何的歷史監(jiān)控?cái)?shù)據(jù)和日志數(shù)據(jù),所以之前介紹的方法就不再適用,這個(gè)時(shí)候需要使用另外一種方法來(lái)評(píng)估性能指標(biāo),那就是“二八定律”。

什么是二八定律?先來(lái)看一下定義:

二八定律又名80/20定律、帕累托法則(Pareto‘s principle)也叫巴萊特定律、朱倫法則(Juran's Principle)、關(guān)鍵少數(shù)法則(Vital FeRule)、不重要多數(shù)法則(Trivial Many Rule)最省力的法則、不平衡原則等,被廣泛應(yīng)用于社會(huì)學(xué)及企業(yè)管理學(xué)等。

二八定律是19世紀(jì)末20世紀(jì)初意大利經(jīng)濟(jì)學(xué)家帕累托發(fā)現(xiàn)的。他認(rèn)為,在任何一種事物中,最重要的只占其中一小部分,約20%,其余80%盡管是多數(shù),卻是次要的。

從經(jīng)濟(jì)學(xué)上看,世界上80%的財(cái)富,都集中的20%的人手里

從心理學(xué)來(lái)說(shuō),人類80%的智慧,都集中在20%人身上

二八定律是一種社會(huì)準(zhǔn)則,符合大多數(shù)社會(huì)現(xiàn)象的規(guī)律。同樣也適用于互聯(lián)網(wǎng)領(lǐng)域。

一個(gè)網(wǎng)站有成千上萬(wàn)的用戶,但是80%的用戶請(qǐng)求是發(fā)生在20%的時(shí)間內(nèi),比如大家去網(wǎng)上購(gòu)物,基本也都集中在中午休息或晚上下班后。二八定律的核心原則是關(guān)注重要部分,忽略次要部分。系統(tǒng)性能如果能支撐發(fā)生在20%時(shí)間內(nèi)的高并發(fā)請(qǐng)求,必然也能支持非高峰期的訪問(wèn)。

具體來(lái)說(shuō)下怎么通過(guò)二八定律來(lái)計(jì)算預(yù)期指標(biāo)。

首先先預(yù)估系統(tǒng)的每日總請(qǐng)求數(shù),這個(gè)沒(méi)有固定的方法,如果沒(méi)有任何歷史數(shù)據(jù)參考,一般是通過(guò)用戶量或者其他關(guān)聯(lián)系統(tǒng)來(lái)評(píng)估。

比如某網(wǎng)站新增了一個(gè)每日簽到送積分功能,由于還沒(méi)有上線,所以沒(méi)有簽到的數(shù)據(jù)。網(wǎng)站的注冊(cè)用戶1000w,日活躍用戶大概是100w左右,那么最極端情況下,這100w人都會(huì)來(lái)簽到(實(shí)際肯定不會(huì)這么多人來(lái)簽到,但是評(píng)估指標(biāo)要盡量往高評(píng),以免出現(xiàn)極端情況),那么每天大概有100w次簽到請(qǐng)求,80%的請(qǐng)求數(shù)就是100w*0.8=80w。

其次確定系統(tǒng)的20%時(shí)間,大多數(shù)系統(tǒng)是24小時(shí)對(duì)外提供服務(wù)的(也有一些系統(tǒng),比如政府類的項(xiàng)目,是在一天的某個(gè)時(shí)間段提供服務(wù)的)。但是大多數(shù)系統(tǒng)在0點(diǎn)-6點(diǎn)之間訪問(wèn)量很少,從一天的總訪問(wèn)量來(lái)看,可以忽略不計(jì)。所以統(tǒng)計(jì)時(shí)間的時(shí)候,可以把這段時(shí)間去掉,一天24小時(shí)去掉這6個(gè)小時(shí),還剩下18個(gè)小時(shí),那20%的時(shí)間=18小時(shí)*3600秒*0.2=12960秒。

最終計(jì)算出來(lái)的結(jié)果為80w請(qǐng)求/12960秒=61左右。也就是說(shuō)接口TPS滿足61即可。

但是也需要考慮一個(gè)問(wèn)題,因?yàn)樯厦娴挠脩粽?qǐng)求是按照100w評(píng)估,也有可能推出這個(gè)活動(dòng)后,每日會(huì)有超過(guò)100w的用戶來(lái)簽到。簽到業(yè)務(wù)每個(gè)用戶只能執(zhí)行一次,如果是其他業(yè)務(wù),可能會(huì)有多次操作。所以評(píng)估出來(lái)指標(biāo)后,為了更加保險(xiǎn)一些,最好再乘以一個(gè)冗余系數(shù),提高預(yù)期指標(biāo),防止人為評(píng)估造成預(yù)期指標(biāo)偏低的情況。

這個(gè)冗余系數(shù)一般定為2-5之間(個(gè)人經(jīng)驗(yàn)),上面計(jì)算出來(lái)的tps指標(biāo)為61,如果再乘以一個(gè)冗余系數(shù)3,那么最終tps指標(biāo)就定為183。同時(shí),將來(lái)項(xiàng)目上線后,可以通過(guò)對(duì)項(xiàng)目接口的峰值監(jiān)控,來(lái)對(duì)比之前評(píng)估的算法結(jié)果,調(diào)整冗余系數(shù),最終隨著不斷的數(shù)據(jù)積累,將會(huì)形成一套本項(xiàng)目的性能模型。

那么將來(lái)項(xiàng)目上線后,接口的訪問(wèn)量真的和計(jì)算的一模一樣嗎?這個(gè)肯定不會(huì),大家一定得知道一個(gè)原則,性能測(cè)試從來(lái)都不是一門非常精確的技術(shù)。二八定律也并不是100%適用于所有業(yè)務(wù)場(chǎng)景。在沒(méi)有任何歷史數(shù)據(jù)參考的背景下,二八定律相對(duì)來(lái)說(shuō)是一種相對(duì)來(lái)說(shuō)靠譜的算法,最起碼有一定的理論依據(jù),比拍腦袋猜的值靠譜多了。

總結(jié)一下,二八定律的算法為80%的請(qǐng)求 / 20%的時(shí)間 * 冗余系數(shù)

看了上面一大堆分析,有的朋友可能又說(shuō)了,別整這些有的沒(méi)的,我們公司的項(xiàng)目就是啥都沒(méi)有,三無(wú)產(chǎn)品,沒(méi)有業(yè)務(wù)監(jiān)控、沒(méi)有中間件日志,也沒(méi)有日活數(shù)據(jù),那怎么評(píng)估預(yù)期指標(biāo)。

對(duì)于這樣的系統(tǒng)和公司,我的建議是,可以不要管什么指標(biāo)了,直接開始測(cè)試,測(cè)試完成后,把本次測(cè)試數(shù)據(jù)發(fā)送給相關(guān)人員,然后大家召開會(huì)議會(huì)結(jié)果進(jìn)行討論,最終由領(lǐng)導(dǎo)來(lái)拍板決定系統(tǒng)性能是否滿足需求。

總結(jié)

以上是生活随笔為你收集整理的性能测试中的二八原则的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。