成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java進程CPU占用率100%問題排查

cyrils / 995人閱讀

摘要:指的是占用了一個核心,兩個核心是,以此類推。占用率及對應進程可以通過命令確定,在界面按顯示完整的命令行參數(shù),按顯示每個核心的統(tǒng)計數(shù)據(jù)。查看線程堆棧,找到對應的類及行號,然后閱讀代碼查找可能的問題原因。

100%指的是占用了CPU一個核心,兩個核心是200%,以此類推。
CPU占用率及對應進程ID(pid)可以通過top命令確定,在top界面按 c (顯示完整的命令行參數(shù)),按 1 (顯示每個核心的統(tǒng)計數(shù)據(jù))。

這個問題最常見的有以下幾種可能:

1、堆內(nèi)存不足導致頻繁Full GC
可以通過兩個命令確定

sudo jmap -heap pid 查看堆內(nèi)存的消耗情況

sudo jstat -gc pid interval count 查看GC情況,示例:sudo jstat -gc 5746 3000 5 代表查看5746進程的GC情況、每隔3000毫秒打印一次、總共打印5次。如果FGC/FGCT增長明顯,說明Full GC很頻繁。

后續(xù)處理:

如果情況緊急,那得馬上重啟Java應用進程

不緊急的話需要獲取相關信息用于分析為什么堆內(nèi)存被消耗完了,可能有內(nèi)存泄漏問題,可以用 1)sudo jmap -histo pid | head -n 20 查看Java對象的占用統(tǒng)計信息,2)sudo jmap -dump:live,format=b,file=heap.bin pid 把堆轉儲導出到本地文件,可以用 Eclipse MAT 工具分析內(nèi)存泄漏

2、代碼實現(xiàn)問題
思路:追查具體是哪個線程占用了CPU,1)先查到本地系統(tǒng)CPU占用率高的線程ID,2)找到對應的Java線程及線程堆棧

top -H -p pid 查看某個進程里面哪些線程占用了CPU,把對應的線程ID拷貝下來,轉為十六進制【IDEA》Tools》Groovy Console》println Long.toHexString(1234) 即可完成轉換】。

sudo jstack -l -F pid | less 獲取Java線程堆棧,用十六進制的本地線程ID搜索,會在某一行的nid處找到對應的線程。查看Java線程堆棧,找到對應的Java類及行號,然后閱讀代碼查找可能的問題原因。

jstack堆棧信息里tid/nid的說明
https://docs.oracle.com/javas...

The thread dump consists of the thread stack, including the thread state, for all Java threads in the virtual machine.

The header line contains the following information about the thread:
- Thread ID (tid), which is the address of a thread structure in memory.
- ID of the native thread (nid).

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/73757.html

相關文章

  • 線上系統(tǒng)性問題定位與方法論

    摘要:很顯然對于不同規(guī)模,不同功能的系統(tǒng),這個問題無法一概而論。生產(chǎn)事件上報客服上報此類問題往往來自用戶投訴,最重要的就是問題現(xiàn)象的復現(xiàn)。線上問題處理的核心是快速修復。以上說的都是問題發(fā)生后的消極應對措施。 前言一線程序員在工作中經(jīng)常需要處理線上的問題或者故障,但工作幾年下來發(fā)現(xiàn),有些同事其實并不知道該如何去分析和解決這些問題,毫無章法的猜測和嘗試,雖然在很多時候可以最終解決問題,但往往也會浪費大...

    leonardofed 評論0 收藏0
  • 一次生產(chǎn) CPU 100% 排查優(yōu)化實踐

    摘要:發(fā)現(xiàn)這是的一個堆棧,前段時間正好解決過一個由于隊列引起的一次強如也發(fā)生內(nèi)存溢出沒想到又來一出。因此初步判斷為大量線程執(zhí)行函數(shù)之后互相競爭導致使用率增高,而通過對堆棧發(fā)現(xiàn)是和使用有關。 showImg(https://segmentfault.com/img/remote/1460000017395756?w=1816&h=1080); 前言 到了年底果然都不太平,最近又收到了運維報警:...

    roundstones 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<