測試場景:高可用場景--限流測試; 被測交易:查詢類交易,HTTP協(xié)議; 交易鏈路:jmeter - web - coimpre(前置服務(wù)) -- coimbp -- cobp (coimbp 、coimpre 都會訪問同一個數(shù)據(jù)庫); 注:cobp 為合肥機房,其他服務(wù)均為北京機房,要注意跨網(wǎng)段存
測試場景:在高可用場景下進行限流測試。
被測交易:HTTP協(xié)議下的查詢類交易。
交易鏈路:jmeter - web - coimpre(前置服務(wù)) -- coimbp -- cobp(coimbp、coimpre均訪問同一數(shù)據(jù)庫)。
注:cobp位于合肥機房,其他服務(wù)位于北京機房,需注意跨網(wǎng)段網(wǎng)絡(luò)延遲可能導(dǎo)致TPS波動。
場景配置:配置coimpre服務(wù)的限流參數(shù)。
場景執(zhí)行:執(zhí)行場景使TPS大于限流參數(shù),觸發(fā)限流報錯,通過日志和服務(wù)返回確認是否成功觸發(fā)限流。
測試問題:交易觸發(fā)限流后,監(jiān)控coimpre服務(wù)CPU資源,從5%上升至90%以上,兩次驗證執(zhí)行,確認問題存在。
排查思路:
1. 使用top命令監(jiān)控消耗CPU高的進程是否為java服務(wù)(程序為java開發(fā))。
2. 使用top -Hp pid查看進程下的線程消耗,進一步確認是哪個線程消耗。
3. 打印線程dump文件,分析dump文件查看該線程此時的業(yè)務(wù)操作(第一個圖是Linux下jcmd生成的,第二個是使用Java VisualVM生成的)。
4. 定位問題,給出優(yōu)化意見,測試驗證。
4.1 通過dump文件分析,有問題的線程主要是在java net.URClassLoader.findResouce()方法,通過第一個圖可以看到j(luò)ava util.zip,ziprile getentry,結(jié)合兩個方法,并通過和開發(fā)溝通是否對某個ZIP文件中文件文件有操作。
4.2 項目組確認,交易報錯后,日志會打印錯誤信息并帶出是哪個jar包導(dǎo)致的錯誤,從而就會遍歷整個jar目錄。
4.3 共同認定是該問題導(dǎo)致的CPU升高,開發(fā)人員修改此處代碼,不再遍歷jar。
4.4 修改后,重新部署版本,再次驗證限流,CPU資源下降至10%。
小編推薦閱讀機器學(xué)習(xí):神經(jīng)網(wǎng)絡(luò)構(gòu)建(下)
閱讀華為Mate品牌盛典:HarmonyOS NEXT加持下游戲性能得到充分釋放
閱讀實現(xiàn)對象集合與DataTable的相互轉(zhuǎn)換
閱讀算法與數(shù)據(jù)結(jié)構(gòu) 1 - 模擬
閱讀5. Spring Cloud OpenFeign 聲明式 WebService 客戶端的超詳細使用
閱讀Java代理模式:靜態(tài)代理和動態(tài)代理的對比分析
閱讀Win11筆記本“自動管理應(yīng)用的顏色”顯示規(guī)則
閱讀本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]
湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2025 haote.com 好特網(wǎng)