jstack top定位cpu高問題

2021-10-20 06:28:16 字數 622 閱讀 9037

1、用ps -ef | grep tomcat-v3 查出tomcat執行的程序id (也可直接用top看);

2、用top -hp pid 查詢程序下所有執行緒的運**況(shift+p 按cpu排序,shift+m 按記憶體排序)

3、找到cpu最高的pid,用printf 『%x』 pid 轉換為16進製制 (也可用計算器)

4、jstack 4754 > 1.hprof

乙個執行緒的狀態有:

new(新建),

runnable(執行),

blocked(阻塞),

waiting(等待),

timed_waiting(等待指定時間),

terminated(終止)

在dump 檔案裡,寫法可能不太一樣:

死鎖,deadlock(重點關注)

執行中,runnable

等待資源,waiting on condition(重點關注)

等待獲取監視器,waiting on monitor entry(重點關注)

物件等待中,object.wait() 或 timed_waiting

暫停,suspended

阻塞,blocked(重點關注)

停止,parked

一次cpu占用高的定位分析

客戶機器cpu占用較高甚至出現cpu打滿的情況,造流程啟動執行緩慢,狀態更新卡死,嚴重影響使用者體驗。首先觀察使用者機器資源情況,記憶體剩餘40g,jvm記憶體占用10 不到。jps ml 拿到pid之後 jstat gccause pid 發現頻繁fgc,差不多一分種就有一次顯示的system.g...

linux程序CPU使用率高問題定位

使用工具 perf,flamegraph perf 內置於linux核心原始碼樹中的效能剖析工具。工作原理 對監控事件進行取樣。brendan gregg的個人 上使用perf工具的案例 flamegraph 操作流程 perf record e cycles g call graph dwarf ...

如何定位CPU瓶頸?

cpu是通常大家最先關注的效能指標,巨集觀維度有核的cpu使用率,微觀有函式的cpu cycle數,根據效能的模型,效能規格與cpu使用率是互相關聯的,規格越高,cpu使用率越高,但是處理器的效能往往又受到記憶體頻寬 cache 發熱等因素的影響,所以cpu使用率和規格引數之間並不是簡單的線性關係,...