cpu使用率高,排查

現象

如圖所示,cpu使用率高達99%,cpu load高達50
在這裏插入圖片描述

排查步驟

1、定位問題發生的時間

通過監控系統查看cpu使用率和load歷史趨勢,發現cpu使用率上升時間與cpuload上升時間相同

2、定位問題進程

通過top命令初步定位到是3845這個進程佔用了大量的cpu
在這裏插入圖片描述

3、定位問題線程

top -Hp $PID

發現11953-11954,11414-11415這四個線程花費cpu時間最長在這裏插入圖片描述
或者

[root@izbp13gpxv4kgw67hji5m1z hsperfdata_root]# ps -mp 3845 -o THREAD,tid,time
USER     %CPU PRI SCNT WCHAN  USER SYSTEM   TID     TIME
102       188   -    - -         -      -     - 2-01:49:32
。。。
102       0.0  19    - futex_    -      - 10988 00:00:44
102       3.1  19    - futex_    -      - 11224 00:49:18
102       7.2  19    - futex_    -      - 11414 01:54:35
102       7.2  19    - futex_    -      - 11415 01:53:57
102       7.3  19    - futex_    -      - 11953 01:56:14
102       7.2  19    - futex_    -      - 11954 01:54:05
102       6.2  19    - -         -      - 12837 01:38:08
102      61.7  19    - -         -      - 24914 00:00:18
102      41.1  19    - -         -      - 26411 00:00:02
102      55.2  19    - -         -      - 26468 00:00:02
102      29.6  19    - -         -      - 26651 00:00:00
102       0.0  19    - -         -      - 26799 00:00:00

4、定位代碼

1、 將需要的線程ID轉換爲16進制格式:

[root@izbp13gpxv4kgw67hji5m1z hsperfdata_root]# printf "%x\n" 11953
2eb1

2、再使用jstack命令打印線程堆棧信息,命令格式:jstack pid |grep tid -A 30

[root@izbp13gpxv4kgw67hji5m1z hsperfdata_root]# jstack 3845  |grep -A 30 2eb1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章