您的位置:首頁 > 軟件教程 > 教程 > 高可用場景下的限流測試及CPU資源消耗排查

高可用場景下的限流測試及CPU資源消耗排查

來源:好特整理 | 時間:2024-06-04 19:13:06 | 閱讀:196 |  標簽: 測試 資源 C   | 分享到:

測試場景:高可用場景--限流測試; 被測交易:查詢類交易,HTTP協(xié)議; 交易鏈路:jmeter - web - coimpre(前置服務) -- coimbp -- cobp (coimbp 、coimpre 都會訪問同一個數據庫); 注:cobp 為合肥機房,其他服務均為北京機房,要注意跨網段存

測試場景:在高可用場景下進行限流測試。

被測交易:HTTP協(xié)議下的查詢類交易。

交易鏈路:jmeter - web - coimpre(前置服務) -- coimbp -- cobp(coimbp、coimpre均訪問同一數據庫)。

注:cobp位于合肥機房,其他服務位于北京機房,需注意跨網段網絡延遲可能導致TPS波動。

場景配置:配置coimpre服務的限流參數。

場景執(zhí)行:執(zhí)行場景使TPS大于限流參數,觸發(fā)限流報錯,通過日志和服務返回確認是否成功觸發(fā)限流。

測試問題:交易觸發(fā)限流后,監(jiān)控coimpre服務CPU資源,從5%上升至90%以上,兩次驗證執(zhí)行,確認問題存在。

排查思路:

1. 使用top命令監(jiān)控消耗CPU高的進程是否為java服務(程序為java開發(fā))。

2. 使用top -Hp pid查看進程下的線程消耗,進一步確認是哪個線程消耗。

高可用場景下的限流測試及CPU資源消耗排查

3. 打印線程dump文件,分析dump文件查看該線程此時的業(yè)務操作(第一個圖是Linux下jcmd生成的,第二個是使用Java VisualVM生成的)。

高可用場景下的限流測試及CPU資源消耗排查

高可用場景下的限流測試及CPU資源消耗排查

4. 定位問題,給出優(yōu)化意見,測試驗證。

4.1 通過dump文件分析,有問題的線程主要是在java net.URClassLoader.findResouce()方法,通過第一個圖可以看到java util.zip,ziprile getentry,結合兩個方法,并通過和開發(fā)溝通是否對某個ZIP文件中文件文件有操作。

4.2 項目組確認,交易報錯后,日志會打印錯誤信息并帶出是哪個jar包導致的錯誤,從而就會遍歷整個jar目錄。

4.3 共同認定是該問題導致的CPU升高,開發(fā)人員修改此處代碼,不再遍歷jar。

4.4 修改后,重新部署版本,再次驗證限流,CPU資源下降至10%。

小編推薦閱讀

好特網發(fā)布此文僅為傳遞信息,不代表好特網認同期限觀點或證實其描述。

資源
資源
類型:經營策略  運營狀態(tài):正式運營  語言:中文   

游戲攻略

游戲禮包

游戲視頻

游戲下載

游戲活動

《資源》(Resources)是游戲商UN3X制作的一款模擬經營游戲。走出戶外,發(fā)現礦藏,建立自己的第一個礦場

相關視頻攻略

更多

掃二維碼進入好特網手機版本!

掃二維碼進入好特網微信公眾號!

本站所有軟件,都由網友上傳,如有侵犯你的版權,請發(fā)郵件[email protected]

湘ICP備2022002427號-10 湘公網安備:43070202000427號© 2013~2025 haote.com 好特網