Jmeter使用過程中的坑之版本配置元件混用導致的壓測TPS周期性波動問題

先說下問題

我在做性能測試時,使用JMeter搞了100個並發,以100TPS的壓力壓測十分鐘,但壓力一直出現波動,而且出現波動時JMeter十分卡,如下圖:

周期性TPS波動

各種推測:

所以開始找環境的各種原因,起初以為是JMeter的連接被「劫持」了,不然JMeter也不會卡的。所以,花了整整一下午時間,去排除壓測機環境、被壓測環境(TCP連接數、程序上的問題等等),但一直沒找到原因。後來,換成LR後,壓測正常。所以開始懷疑是JMeter自身的問題。

原因找到

後來想起來,我被測場景的腳本是老的腳本,也是在JMeter2.8上的,然後我現在用的JMeter是2.13,難道是腳本的兼容性問題?

問題解決

各種替換,最後才定位到了是CSV Data Set Config的問題,只要我用2.8的腳本上的CSV Data Set Config進行參數化,哪怕是這個參數我沒有用,一壓測就出現TPS波動;我禁用後,新建了一個CSV Data Set Config,所有數據保持不變,再次壓測,OK! 這個坑真大!希望Apache組織能夠修改下,肯定是老版本的CSV Data Set Config在新版本的JMeter壓測時,調度存在問題,導致本地的壓力不穩定,而且關鍵的是,這個導致JMeter太卡了。問題解決後的壓力如下:穩穩的,我要穩穩的幸福~

下圖很穩定了,波動在3TPS範圍

涉及版本:Jmeter 2.13(new)、JMeter 2.8(old)

筆者:還有其他坑~就是JMeter插件的資源監控問題,將agent放到Linux上去監控資源,cpu和內存都沒什麼問題,但如果你監控tcp的連接話,就要注意了,這個監控可以吃掉15%左右cpu資源,4核單板的喔,而且是sys的cpu高很多。應該是這塊監控的演算法不夠優化,佔用了太多的資源。請各位JMeter使用者千萬注意咯!

我的原CSDN博客鏈接(已棄用,不再更新!):性能測試JMeter趟的坑之JMeter的bug:TPS周期性波動問題

推薦閱讀:

提車前的秘密,廠家居然對你的愛車做了這種事
Grinder-grinder安裝(源碼方式eclipse環境下安裝與配置)
測試好多都是性能小白,雖學了些性能知識,但在實際工作做開展性能測試,都很茫然,求指導,應該怎麼處理?
論壇防灌水設置如何測試?
學習【伺服器編程】做性能測試實驗時需要至少什麼配置的主機?

TAG:jmeter | 性能测试 |