oom和cpu負載的定位

2022-01-31 15:02:23 字數 850 閱讀 4808

一、oom定位

出現oom 常見的原因:

1、記憶體分配小 預設初始值無法承擔過大的業務

2、大物件沒有及時釋放 可以參考強鏈結及時置為null,

3、網路不通頻繁請求鏈結 服務端網路異常問題

4、程式問題頻繁建立執行緒 **邏輯不嚴謹等

2種排查方式:線上linux伺服器排查、通過外掛程式排查

線上linux伺服器排查:

1、查發生了oom的程序$

執行top -d 1 -c,每秒重新整理一次,顯示程序執行資訊列表

鍵入m (大寫m),程序按照記憶體使用排序

2、jmap -heap $ 檢視xmx xms等使用情況

3、jmap -histo:live $ | more 找到最耗記憶體物件

4、ps -efl $ 確認是否是資源耗盡 如果資源耗盡,也可能出現oom

通過外掛程式排查:

伺服器啟動加入引數

-xx:+heapdumponoutofmemoryerror -xx:heapdumppath=/$/oom.hprof

如果出現oom則對應目錄生成oom.hprof檔案

然後在本地環境伺服器:

安裝mat外掛程式 或jconsole 外掛程式等 把oom.hprof檔案匯入即可

二、cpu 負載高定位

ps -ef|grep tomcat 查tomcat pid

通過top -hp $ 可以檢視該程序下各個執行緒的cpu使用情況

用jstack $ 或 jstack -l $ >jvm_listlocks.txt 匯出執行緒的 dump日誌

詳解Linux CPU負載和CPU使用率

cpu負載和 cpu使用率 這兩個從一定程度上都可以反映一台機器的繁忙程度.cpu使用率反映的是當前cpu的繁忙程度,忽高忽低的原因在於占用cpu處理時間的程序可能處於io等待狀態但卻還未釋放進入wait。平均負載 load erage 是指某段時間內占用cpu時間的程序和等待cpu時間的程序數,這...

LINUX下檢視CPU負載的vmstat命令

vmstat procs memory swap io system cpu r b swpd free buff cache si so bi bo in cs us sy id wa st 1 4 329796 26040 4528 3379824 1 1 50 160 36 17 2 10 8...

LINUX下檢視CPU負載的vmstat命令

vmstat procs memory swap io system cpu r b swpd free buff cache si so bi bo in cs us sy id wa st 1 4 329796 26040 4528 3379824 1 1 50 160 36 17 2 10 8...