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使用率和規格引數之間並不是簡單的線性關係,...