性能測(cè)試:入門級(jí)接口壓測(cè)思路(個(gè)人見(jiàn)解,以jmeter為例)

背景介紹

  • 相信很多測(cè)試項(xiàng)目上现柠,很多都是身兼多職(既要做功能、自動(dòng)化弛矛、性能啥都要做)够吩;這次依據(jù)個(gè)人對(duì)壓測(cè)這塊的理解,分享一下壓測(cè)的思路丈氓。因?yàn)閭€(gè)人以前對(duì)壓測(cè)有很多誤區(qū)周循,所以在此分享下避免繼續(xù)入坑(不喜勿噴强法,如果還有理解誤區(qū)求指點(diǎn),我在來(lái)完善);
  • 下面就講下入門級(jí)的愚見(jiàn):1、壓力測(cè)試重點(diǎn)關(guān)注點(diǎn)是什么湾笛?2饮怯、壓力測(cè)試怎么做?

一嚎研、壓力測(cè)試重點(diǎn)關(guān)注點(diǎn)是什么蓖墅?

1.1、因?yàn)榭次乙郧暗耐禄蛘攥F(xiàn)在測(cè)試朋友們get不到重點(diǎn)临扮,都是按照各公司現(xiàn)有的demo去做论矾,用jmeter配置線程數(shù)去壓。最后都是說(shuō)支持500并發(fā)杆勇、1000并發(fā)贪壳,把聚合報(bào)告的指標(biāo)撈出來(lái)再給個(gè)結(jié)論;但其中的對(duì)應(yīng)關(guān)系還是很茫然的蚜退。
1.2闰靴、先捋一下壓測(cè)的目的是什么:壓測(cè)主要目的是結(jié)合當(dāng)前服務(wù)資源以及當(dāng)前環(huán)境配置基礎(chǔ)下,對(duì)應(yīng)用接口在不同壓力場(chǎng)景下得出各指標(biāo)結(jié)果是否滿足實(shí)際應(yīng)用需求【所以要優(yōu)化性能指標(biāo)的話钻注,除從應(yīng)用接口的代碼邏輯和設(shè)計(jì)鏈路去優(yōu)化的話蚂且,還需要結(jié)合環(huán)境的配置(例:連接數(shù)、隊(duì)列值队寇、jvm配置等)以及本身的物理資源去出發(fā)膘掰;能調(diào)到最合理的、最充分的利用率那就是性能大咖了】佳遣;
1.3识埋、對(duì)“并發(fā)”名詞說(shuō)明:并發(fā)這個(gè)詞在項(xiàng)目中很容易混淆,所以在此先講解下這個(gè)詞;并發(fā)分為相對(duì)并發(fā)絕對(duì)并發(fā)零渐;相對(duì)并發(fā)是指在一個(gè)時(shí)間段內(nèi)發(fā)生的事務(wù)(可理解跟tps掛鉤)窒舟,絕對(duì)并發(fā)是指在同一時(shí)刻發(fā)生的事情(可理解為跟線程數(shù)掛鉤,jmeter的“集合點(diǎn)”功能可以實(shí)現(xiàn)這種方式)诵盼;以下講的并發(fā)都是依據(jù)絕對(duì)并發(fā)來(lái)說(shuō)惠豺。

?所以首先列下重點(diǎn)關(guān)注點(diǎn),根據(jù)如下四點(diǎn)去判斷壓測(cè)是否達(dá)標(biāo)通過(guò):
1)风宁、TPS指標(biāo):
2)洁墙、響應(yīng)時(shí)間:
3)、出錯(cuò)率:
4)戒财、服務(wù)資源情況:

?下述分享個(gè)樣例:
【測(cè)試結(jié)果】:
1)热监、TPS拐點(diǎn)峰值:依據(jù)壓測(cè)結(jié)果,在90并發(fā)時(shí)達(dá)到峰值(2277筆/s)饮寞,而后續(xù)持續(xù)遞增并發(fā)數(shù)后TPS呈平穩(wěn)趨勢(shì)孝扛,即保持峰值在2200左右列吼;--【達(dá)到預(yù)期≥1557筆要求】
2)、接口響應(yīng)時(shí)間指標(biāo)((以負(fù)載并發(fā)截圖為準(zhǔn)):依據(jù)tps峰值下進(jìn)行并發(fā)苦始,平均響應(yīng)時(shí)間為63.83ms,95%百分位響應(yīng)時(shí)間為92ms寞钥;--【達(dá)到預(yù)期≤100ms要求】
3)、出錯(cuò)率:整個(gè)梯級(jí)壓測(cè)過(guò)程中出現(xiàn)0.29%異常情況陌选,經(jīng)核查為環(huán)境XXXX問(wèn)題受影響理郑,非業(yè)務(wù)邏輯或資源問(wèn)題,即忽略此錯(cuò)誤率柠贤;--【達(dá)到預(yù)期99.9%成功率要求】
4)香浩、服務(wù)資源消耗:整體服務(wù)資源利用正常,內(nèi)存及CPU利用平穩(wěn)無(wú)異常情況臼勉;TPS下降時(shí)cpu正常對(duì)等下降邻吭,壓測(cè)結(jié)束后資源也可正常釋放;--【符合預(yù)期,詳見(jiàn)報(bào)告鏈接】

2.1宴霸、先說(shuō)下TPS指標(biāo)方面:
1)囱晴、TPS是主要是為了測(cè)出拐點(diǎn)峰值,得出當(dāng)前服務(wù)環(huán)境下最大的事務(wù)處理量(例如上述得出2277筆/s)瓢谢;
2)畸写、TPS峰值達(dá)標(biāo)判斷:需要結(jié)合本身實(shí)際要求(例如上述-結(jié)合實(shí)際生產(chǎn)要求得出不小于1557筆),那我峰值已經(jīng)覆蓋預(yù)期要求氓扛,那TPS指標(biāo)就算滿足達(dá)標(biāo)了枯芬;
3)、TPS峰值不滿足或者需要達(dá)到更佳情況下:就要考慮怎么去調(diào)優(yōu)了采郎,主要方向:從業(yè)務(wù)代碼方面優(yōu)化千所、服務(wù)配置的優(yōu)化、再到物理資源的提升蒜埋;
4)淫痰、額外說(shuō)明:關(guān)于實(shí)際預(yù)期要求多少,這個(gè)是需要參考生產(chǎn)實(shí)際使用量有多少整份;目前普遍比較多的是有埋點(diǎn)功能待错,可以統(tǒng)計(jì)到調(diào)用量;再結(jié)合有一定參考價(jià)值的二八原則計(jì)算(指80%的業(yè)務(wù)量在20%的時(shí)間里完成烈评,另此公式不一定適合所有項(xiàng)目火俄,具體需要結(jié)合每個(gè)系統(tǒng)項(xiàng)目應(yīng)用場(chǎng)景);

2.2讲冠、響應(yīng)時(shí)間指標(biāo):
1)烛占、需結(jié)合要求衡量取哪個(gè)響應(yīng)時(shí)間,一般主要關(guān)注平均值和95%分位值;如果嚴(yán)謹(jǐn)一點(diǎn)的話可以以99%分位為準(zhǔn)(這樣情況下確保每個(gè)調(diào)用都能達(dá)標(biāo))忆家;
2)、響應(yīng)時(shí)間達(dá)標(biāo)判斷:首先先知道指標(biāo)要求是多少德迹,一般可以從產(chǎn)品經(jīng)理那給出或者下游調(diào)用方超時(shí)設(shè)置值為參考芽卿,這些都算指標(biāo)要求;另這塊一般都是和tps事務(wù)處理量 and 并行要求的(例如:上述相當(dāng)于說(shuō)在每秒tps不低于1557的時(shí)候,并且95%分位要小于100ms);

2.3胳搞、出錯(cuò)率:
1)卸例、出錯(cuò)率也是一個(gè)重點(diǎn)關(guān)注項(xiàng),如果都異常了肯定是不可接受的肌毅;另對(duì)整體的指標(biāo)可能要考慮是否有價(jià)值了筷转,但這塊肯定需要結(jié)合異常情況去分析,在給出結(jié)論(如在壓測(cè)過(guò)程報(bào)錯(cuò)悬而,有些業(yè)務(wù)層面上認(rèn)為是合理的呜舒。但往往比較容易忽略,其實(shí)可能隱藏很大的性能問(wèn)題):
2)笨奠、注意點(diǎn):當(dāng)整體壓測(cè)下出現(xiàn)小部分概率異常袭蝗,這個(gè)需要自身衡量下指標(biāo)是否有價(jià)值,因?yàn)槟且恍〔糠钟绊懻w指標(biāo)可能會(huì)很大(比如百分98都是在200毫秒左右般婆,百分之二因?yàn)楫惓?毫秒就響應(yīng)了到腥,導(dǎo)致整體指標(biāo)影響很大)

2.4、服務(wù)資源消耗:
1)蔚袍、服務(wù)資源主要關(guān)注施壓機(jī)(即請(qǐng)求方)和壓力機(jī)(被請(qǐng)求方)乡范,施壓機(jī)需要確保自身環(huán)境資源夠滿足(避免因自身請(qǐng)求方機(jī)器原因無(wú)法滿足設(shè)置場(chǎng)景,導(dǎo)致未壓出真實(shí)指標(biāo))啤咽;
2)晋辆、服務(wù)資源利用情況常規(guī)的需要重點(diǎn)關(guān)注下cpu(例如是互聯(lián)網(wǎng)產(chǎn)品cpu使用率應(yīng)該不能超50%,內(nèi)部使用的一般80%闰蚕;保證預(yù)期最大tps下栈拖,服務(wù)器還是很健康的)、內(nèi)存(需要關(guān)注應(yīng)用內(nèi)存没陡,如jvm的內(nèi)存變化涩哟,只關(guān)注服務(wù)器內(nèi)存意義不大),磁盤讀寫盼玄、網(wǎng)絡(luò)接收發(fā)送 -->>各資源消耗不合理的變化或者有較大的異常波動(dòng)需要再結(jié)合分析贴彼;
3)、這塊服務(wù)監(jiān)聽(tīng)的工具還是很多的埃儿,jmeter插件的探針工具也有的器仗,雖然不是很強(qiáng)大,勉強(qiáng)能用【插件下載1:jmeter-PerfMon服務(wù)監(jiān)聽(tīng);服務(wù)資源探針2:ServerAgent-2.2.1--提取碼:8888 】

二精钮、壓力測(cè)試怎么做?(以TPS為例)

常規(guī)的壓測(cè)大家基本都會(huì)做威鹿,這里講下另一種壓測(cè)方式,既通過(guò)梯度增壓方式去找出核心指標(biāo):TPS峰值

  • 在jmeter中轨香,可以利用【插件下載:Stepping Thread Group】來(lái)做到遞增壓測(cè)忽你,直接在一次線程組中找出TPS峰值(詳解如下圖)
    jmeter插件1.png

1.1、配置思路:
①臂容、上述第一點(diǎn)-->最高并發(fā)值:可預(yù)估一個(gè)較高的并發(fā)值科雳,確保在最高并發(fā)值內(nèi)找出tps峰值(如果在此預(yù)估配置下未找到tps拐點(diǎn),需設(shè)置更大值)脓杉;
②糟秘、上述第二點(diǎn)-->持續(xù)增壓(高度):遞增的并發(fā)數(shù)值需要更準(zhǔn)確一點(diǎn)的話,建議設(shè)置以最高并發(fā)值5-10%區(qū)間遞增(此處主要避免在遞增爬坡的時(shí)候出來(lái)了tps拐點(diǎn)峰值)球散;
③尿赚、上述第三點(diǎn)-->恒定并發(fā)量時(shí)間(長(zhǎng)度):此處的設(shè)置長(zhǎng)度(即時(shí)長(zhǎng)),如果確保要精確些可以設(shè)置時(shí)間久一點(diǎn)(這里的設(shè)置時(shí)長(zhǎng):確保tps是趨向平穩(wěn)狀態(tài)沛婴,如非平穩(wěn)狀態(tài)需設(shè)置更長(zhǎng)或者可能需要考慮其他因素)

1.2吼畏、TPS效果參考圖【插件下載:Transactions per Second

jmeter插件2.png

①、確保已經(jīng)到tps峰值判別:即tps是曲線是橫向狀態(tài)(停止繼續(xù)上升了)或者tps拐點(diǎn)往下走嘁灯;
②泻蚊、tps峰值橫向一段時(shí)間的解釋:到峰值時(shí)是在現(xiàn)狀資源環(huán)境下,可最大處理事務(wù)量丑婿;橫向是后續(xù)持續(xù)增加處于最大隊(duì)列內(nèi)性雄,此時(shí)段響應(yīng)時(shí)間相對(duì)而言增加會(huì)更大(每個(gè)服務(wù)系統(tǒng)不一樣,具體需要對(duì)應(yīng)分析)羹奉;

1.3秒旋、附上-響應(yīng)時(shí)間插件【插件下載:ResponseTimesOverTime

響應(yīng)時(shí)間圖

結(jié)尾語(yǔ):
1)、未放更多實(shí)際已做的壓測(cè)場(chǎng)景和圖片(因?yàn)樯婕靶畔踩魇茫愣模┣ㄉ福椭苯佑胘meter截些圖片做講解了;
2)耕挨、后續(xù)會(huì)持續(xù)更新细卧,在繼續(xù)完善并且補(bǔ)充負(fù)載、穩(wěn)定性方面的點(diǎn).現(xiàn)先收收尾筒占;
3)贪庙、此文章更多分享的是思路,主要對(duì)于入門級(jí)是怎么構(gòu)思去做壓測(cè)翰苫,而不至于直接茫然去壓止邮;
4)这橙、壓測(cè)還有一個(gè)核心點(diǎn),除了給出性能指標(biāo)外還要找出瓶頸點(diǎn)以及分析瓶頸問(wèn)題导披。而對(duì)于這塊需要對(duì)綜合技術(shù)認(rèn)知以及對(duì)業(yè)務(wù)整體架構(gòu)屈扎、鏈路要有全面的了解來(lái)支撐的;所以需要真正做起性能測(cè)試撩匕,還任重道遠(yuǎn)助隧,一步一個(gè)腳印來(lái)吧

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市滑沧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌巍实,老刑警劉巖滓技,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異棚潦,居然都是意外死亡令漂,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門丸边,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)叠必,“玉大人,你說(shuō)我怎么就攤上這事妹窖∥吵” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵骄呼,是天一觀的道長(zhǎng)共苛。 經(jīng)常有香客問(wèn)我,道長(zhǎng)蜓萄,這世上最難降的妖魔是什么隅茎? 我笑而不...
    開(kāi)封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮嫉沽,結(jié)果婚禮上辟犀,老公的妹妹穿的比我還像新娘。我一直安慰自己绸硕,他們只是感情好堂竟,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著臣咖,像睡著了一般跃捣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上夺蛇,一...
    開(kāi)封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天疚漆,我揣著相機(jī)與錄音,去河邊找鬼。 笑死娶聘,一個(gè)胖子當(dāng)著我的面吹牛闻镶,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播丸升,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼铆农,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了狡耻?” 一聲冷哼從身側(cè)響起墩剖,我...
    開(kāi)封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎夷狰,沒(méi)想到半個(gè)月后岭皂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡沼头,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年爷绘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片进倍。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡土至,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出猾昆,到底是詐尸還是另有隱情陶因,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布毡庆,位于F島的核電站坑赡,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏么抗。R本人自食惡果不足惜毅否,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蝇刀。 院中可真熱鬧螟加,春花似錦、人聲如沸吞琐。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)站粟。三九已至黍图,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間奴烙,已是汗流浹背助被。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工剖张, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人揩环。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓搔弄,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親丰滑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子顾犹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

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