一、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...