欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux系統(tǒng)java進(jìn)程CPU占用過高的問題及排查

 更新時(shí)間:2023年06月28日 10:21:27   作者:千月落  
這篇文章主要介紹了Linux系統(tǒng)java進(jìn)程CPU占用過高的問題及排查方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Linux系統(tǒng)java進(jìn)程CPU占用過高

1.通過top命令查看,CPU占用高的進(jìn)程

top

2.查看該進(jìn)程下線程占用CPU情況

# 12133-進(jìn)程號(hào)
top -Hp 12133

這里的PID是線程ID,可以看到,有幾個(gè)線程CPU占用過高。

3.將線程ID轉(zhuǎn)成16進(jìn)制

printf '0x%x\n' 5421

4.通過jstack命令查看線程堆棧

# 12113-進(jìn)程號(hào) 
# 0xc81-上面查到的16進(jìn)制線程號(hào)
jstack 12113|grep 0xc81 -A 20

通過堆棧信息,找到具體的代碼,分析原因。

Linux如何定位Java進(jìn)程CPU利用率過高原因

首先通過Top命令查看占用CPU較高的進(jìn)程PID,執(zhí)行Top之后按1可以查看每個(gè)核占用比例

top

這里寫圖片描述

這里由于我是用的虛擬機(jī),即使我的Java進(jìn)程占用CPU很高也只是占的虛擬機(jī)的,而對(duì)整個(gè)機(jī)器的CPU來說占的并不高。

這里我們找到了pid=7957

然后我們?cè)诟鶕?jù)pid找出占用CPU過高的線程

top -H -p 7957

這里寫圖片描述

然后根據(jù)線程id=7958使用strace -p命令查看調(diào)用情況

這里寫圖片描述

發(fā)現(xiàn)系統(tǒng)在不停的打印1然后把線程十進(jìn)制的線程id=7958轉(zhuǎn)換為十六進(jìn)制

這里寫圖片描述

最后抓取堆棧信息,查看代碼位置

這里寫圖片描述

這里寫圖片描述

我看找到了線程7958,并且定位到了Test.main第四行,我們打開代碼看看

這里寫圖片描述

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論