本文記錄了使用jmeter對(duì)Azure Service Fabric進(jìn)行壓力測(cè)試的情況。壓力目標(biāo)為上篇文章里創(chuàng)建完成的示例程序--Voting
- 節(jié)點(diǎn)配置:D1 標(biāo)準(zhǔn) 1 vCPU,3.5 GB腕让,4 數(shù)據(jù)磁盤(pán),2x500 最大 IOPS歧斟,50 GB 本地 SSD
- jmeter項(xiàng)目如下圖
- 單記錄操作使用固定Url:api/Votes/press01
- 多記錄使用隨機(jī)函數(shù)api/Votes/${__RandomString(2,abcdefg)}
- 使用1~300個(gè)線(xiàn)程纯丸,610秒內(nèi)啟動(dòng),差不多每2秒增加一個(gè)静袖。
-
每個(gè)線(xiàn)程PUT添加和GET查詢(xún)都執(zhí)行一次
jmeter線(xiàn)程組配置
先測(cè)試單記錄操作的情況:
先測(cè)試添加投票的接口觉鼻,一直投一個(gè)票,發(fā)現(xiàn)Throughput 在50左右队橙,本地測(cè)試也是一樣情況坠陈,這時(shí)監(jiān)控服務(wù)器,發(fā)現(xiàn)Cpu和內(nèi)存都不高捐康,經(jīng)過(guò)分析應(yīng)該是因?yàn)橹粚?duì)一行記錄進(jìn)行寫(xiě)入操作()仇矾。
看一下響應(yīng)時(shí)間圖,如下圖吹由,可以看出若未,當(dāng)操作單條記錄時(shí)朱嘴,響應(yīng)時(shí)間幾乎是隨并發(fā)量線(xiàn)性增長(zhǎng)的倾鲫,操作的用戶(hù)越多等的時(shí)間越長(zhǎng)(因?yàn)閱螚l記錄的讀寫(xiě)時(shí)間是固定的,在沒(méi)有緩存和排隊(duì)的情況下萍嬉,這是必然現(xiàn)像)乌昔。當(dāng)并發(fā)線(xiàn)程為50個(gè)時(shí),響應(yīng)時(shí)間在1秒左右壤追,當(dāng)300個(gè)線(xiàn)程時(shí)響應(yīng)時(shí)間為5.8秒
但應(yīng)該不會(huì)影響其它投票項(xiàng)的操作(服務(wù)器壓力一直在20~30%也可以說(shuō)明這一點(diǎn)磕道。
吞吐量,見(jiàn)下圖行冰,可以看出溺蕉,幾乎保持在58左右,就是說(shuō)Service Fabric的Statful的存儲(chǔ)響應(yīng)時(shí)間應(yīng)為1/58秒=17毫秒左右悼做。
使用隨機(jī)函數(shù)疯特,測(cè)試投不同票(寫(xiě)入不同記錄)的情況,服務(wù)器負(fù)載高了肛走,CPU在40%左右
下圖為投指定票漓雅,隨機(jī)投票,獲取結(jié)果三種情況下CUP的負(fù)載情況:
增加節(jié)點(diǎn)到2和3個(gè),并依次測(cè)試:
生成結(jié)果報(bào)告并比較結(jié)果
.\jmeter -g H:\jmeter_service_fabric_voting\service_fabric-voting.csv -o H:\jmeter_service_fabric_voting\report
壓力測(cè)試報(bào)告結(jié)果分析
我分別在一個(gè)節(jié)點(diǎn)邻吞,2個(gè)節(jié)點(diǎn)组题,3個(gè)節(jié)點(diǎn)下測(cè)試了以下3個(gè)操作:
- 單記錄讀寫(xiě)操作(put single)
- 多記錄除隨機(jī)讀寫(xiě)操作(put random)
-
多記錄查詢(xún)操作(get)
報(bào)告
單記錄操作分析:(不同節(jié)點(diǎn)數(shù)量變化不大,節(jié)點(diǎn)越多抱冷,吞吐量反而有略微下降)
單記錄讀寫(xiě)的平均響應(yīng)時(shí)間Average Response Times(ms)和吞吐量(Throughput)崔列,在1~3個(gè)節(jié)點(diǎn)時(shí)分別為:
- 3022ms,56
- 3229ms旺遮,57
- 3325ms峻呕,55
多記錄操作分析:(每增加一下節(jié)點(diǎn),吞吐量增加1.8倍左右)
多記錄隨機(jī)讀寫(xiě)的平均響應(yīng)時(shí)間Average Response Times(ms)和吞吐量(Throughput)趣效,在1~3個(gè)節(jié)點(diǎn)時(shí)分別為:
- 1個(gè)節(jié)點(diǎn):1873ms瘦癌,102
- 2個(gè)節(jié)點(diǎn):1017ms,180
- 3個(gè)節(jié)點(diǎn):743ms跷敬,245
查詢(xún)操作:(因?yàn)闇y(cè)試用例只獲取第一頁(yè)讯私,所以多節(jié)點(diǎn)性能并無(wú)明顯提升)
查詢(xún)操作的平均響應(yīng)時(shí)間Average Response Times(ms)和吞吐量(Throughput),在1~3個(gè)節(jié)點(diǎn)時(shí)分別為:
- 1個(gè)節(jié)點(diǎn):1051ms西傀,237
- 2個(gè)節(jié)點(diǎn):649ms斤寇,279
- 3個(gè)節(jié)點(diǎn):648ms,280
不同并發(fā)量下的響應(yīng)時(shí)間
可以看出各種情況下響應(yīng)時(shí)間都是隨著并發(fā)量增加呈線(xiàn)性增長(zhǎng)的拥褂。