java致使linux負載太高的定位方法

定位java進程ID

可使用top或ps -ef |grep java
![圖片描述][1]

根據進程ID找到最消耗資源的java pid

好比第一步找到的進程ID爲5431
執行
top -p 5431 -H
![圖片描述][2]

打印java棧信息

$ jstack -l 5431 > 5431.log

在棧信息中定位具體問題

將消耗資源的Java PID轉換爲16進制,在打印的棧信息中進行查找,並定位具體問題。
將18966和23262轉換爲16進制。
java pid 對應棧信息中的nid(16進制),根據上面轉換的16進制到5431.log中進行查找。

同時也可使用jmap查看堆的狀況:
jmap -heap 5431 > 5431_heap.log
jmap -histo 5431 > 5431_histo.log
相關文章
相關標籤/搜索