【LINUX】線上服務CPU100%問題快速定位實戰
功能問題,透過日誌,單步除錯相對比較好定位。
效能問題,例如線上伺服器CPU100%,如何找到相關服務,如何定位問題程式碼,更考驗技術人的功底。
58到家架構部,運維部,58速運技術部聯合進行了一次線上服務CPU問題排查實戰演練,同學們反饋有收穫,特將實戰演練的試題和答案公佈出來,希望對大家也有幫助。
題目
某伺服器上部署了若干tomcat例項,即若干垂直切分的Java站點服務,以及若干Java微服務,突然收到運維的CPU異常告警。
問:如何定位是哪個服務程式導致CPU過載,哪個執行緒導致CPU過載,哪段程式碼導致CPU過載?
步驟一、找到最耗CPU的程式
工具:top
方法:
-
執行top -c ,顯示程式執行資訊列表
-
鍵入P (大寫p),程式按照CPU使用率排序
圖示:
如上圖,最耗CPU的程式PID為10765
步驟二:找到最耗CPU的執行緒
工具:top
方法:
-
top -Hp 10765 ,顯示一個程式的執行緒執行資訊列表
-
鍵入P (大寫p),執行緒按照CPU使用率排序
圖示:
如上圖,程式10765內,最耗CPU的執行緒PID為10804
步驟三:將執行緒PID轉化為16進位制
工具:printf
方法:printf “%x\n” 10804
圖示:
如上圖,10804對應的16進位制是0x2a34,當然,這一步可以用計算器。
之所以要轉化為16進位制,是因為堆疊裡,執行緒id是用16進製表示的。
步驟四:檢視堆疊,找到執行緒在幹嘛
工具:pstack/jstack/grep
方法:jstack 10765 | grep ‘0x2a34’ -C5 --color
-
列印程式堆疊
-
透過執行緒id,過濾得到執行緒堆疊
圖示:
如上圖,找到了耗CPU高的執行緒對應的執行緒名稱“AsyncLogger-1”,以及看到了該執行緒正在執行程式碼的堆疊。
希望對經常進行線上CPU問題排查的同學有幫助,如果有更好的實踐,也歡迎分享。
想要印象深刻,請大家務必線上實操練習喲。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29096438/viewspace-2143958/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 超牛逼的效能監控神器!快速定位線上問題
- 記在Linux上定位後臺服務偶發崩潰的問題Linux
- 使用git bisect快速定位問題Git
- Tomcat服務問題,Cpu100%,急需幫助,請高手指點,謝謝!!!Tomcat
- HarmonyOS從基礎到實戰-高效能華為線上答題元服務
- 線上服務Java程序假死快速排查、分析Java
- 該怎麼解決運維定位服務故障問題?運維
- Java線上問題排查神器Arthas實戰分析Java
- 服務中有“推”有“拉”,該如何分析線上問題?
- MindSpore模型精度調優實戰:如何更快定位精度問題模型
- 線上服務的FGC問題排查,看這篇就夠了!GC
- Elasticsearch 線上實戰問題及解決方案探討Elasticsearch
- 實戰分享反爬機制快速定位與破解
- SpringCloud 實戰:禁止直接訪問後端服務SpringGCCloud後端
- 實戰 | Hive 資料傾斜問題定位排查及解決Hive
- 快速解決整合華為AGC服務提示miss client id問題GCclient
- Linux系統下Oracle服務關閉問題LinuxOracle
- 使用 Docker 和 Node 快速實現一個線上的 QRCode 解碼服務Docker
- iOS——寫一個快速定位問題的指令碼iOS指令碼
- 通過shell指令碼快速定位active session問題指令碼Session
- 不改一行程式碼定位線上效能問題行程
- Laravel —— 服務注入實戰案例Laravel
- Java服務.問題排查.問題復現Java
- GoldenGate--大事務拆分成小事務定位問題Go
- 釋出或重啟線上服務時抖動問題解決方案
- 通過git bisect快速定位大型工程中的問題Git
- 快速定位隱蔽的sql效能問題及調優SQL
- 線上FullGC問題排查實踐——手把手教你排查線上問題GC
- shell——一鍵部署服務實戰
- 講一個linux服務啟動報錯問題排查Linux
- 如何快速搭建Linux系統中Samba服務LinuxSamba
- JAVA CPU100%與執行緒死鎖定位Java執行緒
- SAS服務效能問題專案
- Nginx 實戰-04-nginx 不同的地址訪問不同的服務Nginx
- grpc實戰——服務端流式呼叫RPC服務端
- Angular5 服務端渲染實戰Angular服務端
- 線上併發事務死鎖問題排查
- 技能篇:linux服務效能問題排查及jvm調優思路LinuxJVM