今天遇到乙個問題:守護程序第一次執行某個功能沒問題,第二次執行總出錯。
1. 二分法注釋掉多餘的功能,逐步除錯
2. 發現當執行gsource的timer後cpu會達到九十多,近100.因此導致第二次執行同樣功能不正常
3. 發現原始碼中只是使用了g_timeout_add_seconds,但是並沒有將該timer attach到某乙個context中去(context屬於某個mainloop)
4. 嘗試attach,結果還是不行,思考是否沒有釋放
5. 嘗試使用後釋放該timer,最終可行(注意unref的次數,底層**沒有深究,個人推測應該和智慧型smart pointer的計數指標類似)
6. 嘗試使用其他的timer,最終也可行。
Ticker 未釋放導致的 CPU 占用過高
1.tcp 連線中,存在全球各地的 ip,並且數量佔比很高,存在惡意攻擊的可能.2.輔導服務會為每個 tcp 連線都會建立乙個 ticker,並且沒有釋放.time.newticker time.starttimer runtime.addtimer runtime.addtimerlocked r...
kjournald占用CPU過高導致程式響應慢
昨天晚上11點多,開啟運營官商學院相當慢,一開始以為是網速問題,後來發現其他站點相對流暢,那麼排除了網速原因。進入shell檢視tomcat執行良好。top檢視發現每次訪問都會導致kjournald 的cpu佔用率飆高。速度找到tomcat下web的日誌檔案發現每天的日誌高達7 800m 暈菜。刪除...
實戰CPU占用過高問題定位
網上學習了cpu 占用過高如何快速定位的方法後,根據現有的專案實戰一次。廢話不多說了,直接展示定位的問題的詳細步驟。服務部署在linux伺服器,定位問題的方法,主要也是使用相關的linux命令與jdk檢視堆疊,gc日誌等相關命令。1.問題發現 top 檢視當前伺服器各個程序執行占用cpu,記憶體等情...