CPU占用過高的分析思路
[toc]
先用top
命令找出CPU占用比最高的進(jìn)程
比如我這里可以看到 etcd
redis-server
占用是比較高的琅轧。
ps -ef
進(jìn)一步定位,得知是一個(gè)怎樣的后臺程序在占用CPU
我這里就找到了這個(gè)redis 的進(jìn)程,進(jìn)程ID為11089
定位到具體的線程或代碼
ps -mp 進(jìn)程ID -o THREAD,tid,time
我這個(gè)Demo的例子里面可以看到 redis-server
這個(gè)進(jìn)程下面的線程凰兑,其中 11089 這個(gè)線程占用最多。
將線程ID轉(zhuǎn)為16進(jìn)制格式
上一個(gè)步驟我們找到了這個(gè)線程的ID為 11089 但是這是十進(jìn)制的,所以我們要轉(zhuǎn)化為16進(jìn)制:為0x2b51衰腌。
jstack 進(jìn)程ID | grep tid(16進(jìn)制線程ID) -A60
參考陽哥視頻