【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
- 超牛逼的效能監控神器!快速定位線上問題
- Java線上問題排查神器Arthas實戰分析Java
- 線上服務Java程序假死快速排查、分析Java
- xshell連線不上linux問題Linux
- HarmonyOS從基礎到實戰-高效能華為線上答題元服務
- Elasticsearch 線上實戰問題及解決方案探討Elasticsearch
- 線上服務的FGC問題排查,看這篇就夠了!GC
- 不改一行程式碼定位線上效能問題行程
- 線上FullGC問題排查實踐——手把手教你排查線上問題GC
- 使用 Docker 和 Node 快速實現一個線上的 QRCode 解碼服務Docker
- MindSpore模型精度調優實戰:如何更快定位精度問題模型
- 實戰 | Hive 資料傾斜問題定位排查及解決Hive
- SpringCloud 實戰:禁止直接訪問後端服務SpringGCCloud後端
- 實戰分享反爬機制快速定位與破解
- 線上業務最佳化之案例實戰
- 線上併發事務死鎖問題排查
- JAVA CPU100%與執行緒死鎖定位Java執行緒
- docker快速部署DNS,實現快速上線DockerDNS
- 通過git bisect快速定位大型工程中的問題Git
- 講一個linux服務啟動報錯問題排查Linux
- Java線上問題排查神器Arthas快速上手與原理淺談Java
- Java 線上問題排查神器 Arthas 快速上手與原理淺談Java
- Java服務.問題排查.問題復現Java
- .netcore 微服務快速開發框架 Anno&Viper 註冊中心 (服務上線下線預警通知)NetCore微服務框架
- 必看2:快速定位問題:雲伺服器上dns解析異常怎麼修復伺服器DNS
- 快速解決整合華為AGC服務提示miss client id問題GCclient
- 在Linux中,mysql的innodb如何定位鎖問題?LinuxMySql
- 如何快速搭建Linux系統中Samba服務LinuxSamba
- 線上多域名實戰
- 技能篇:linux服務效能問題排查及jvm調優思路LinuxJVM
- Laravel —— 服務注入實戰案例Laravel
- 以指線上,IT服務外包業務網站網站
- MinIO線上擴容實戰
- 線上問題集錦(1)
- 線上問題集錦(2)
- JVM問題定位工具JVM
- 【程式碼實戰】華為應用市場專家線上直播AppGallery Connect 服務整合過程APP