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

java應(yīng)用cpu飆升(超過(guò)100%)故障排查步驟

 更新時(shí)間:2023年06月26日 11:26:59   作者:java路飛  
在Java并發(fā)編程計(jì)算密集型要進(jìn)行大量的計(jì)算、邏輯判斷等操作,消耗CPU資源,比如計(jì)算圓周率、對(duì)視頻進(jìn)行高清解碼等等,下面這篇文章主要給大家介紹了關(guān)于java應(yīng)用cpu飆升(超過(guò)100%)故障排查步驟的相關(guān)資料,需要的朋友可以參考下

前言

害。。。

昨天剛寫完一份關(guān)于jvm問(wèn)題排查相關(guān)的博客,今天線上項(xiàng)目就遇到了一個(gè)突發(fā)問(wèn)題。

現(xiàn)象是用戶反映系統(tǒng)非常卡,無(wú)法操作。

然后登錄服務(wù)器查看發(fā)現(xiàn)cpu 一直100%以上。

具體排查步驟:

1,首先top命令查看服務(wù)器cpu等情況:

發(fā)現(xiàn)線上pid 29737的 java應(yīng)用cpu達(dá)到100%

2,top -H -p pid命令查看具體的線程情況

top -H -p 29373

輸入上述命令,然后按H顯示cpu最高排名的線程。可以看到pid 30013的線程cpu 100%且一直未釋放。

3.將線程的pid轉(zhuǎn)為16進(jìn)制

printf "%x\n" 30013

30013做16進(jìn)制轉(zhuǎn)換為753d

4.使用jvm工具jstack打印該進(jìn)程的堆棧信息

使用該命令打印堆棧信息的后50行

jstack 29737 |grep -A 50 753d 

然后就可以具體看到具體的出問(wèn)題的是哪部分代碼了,然后檢查更改即可。(我們的是代碼中出現(xiàn)死循環(huán))

注意問(wèn)題:

可能會(huì)出現(xiàn)以下報(bào)錯(cuò):

xxxx: Unable to open socket file: target process not responding or HotSpot VM not loaded

The -F option can be used when the target process is not responding

有兩個(gè)可能:

1.jstack后面的進(jìn)程pid不對(duì),或者16進(jìn)制的數(shù)不對(duì)。

需要注意jstack后面是jps的java進(jìn)程id。

2.執(zhí)行該命令的用戶必須和java應(yīng)用所屬的用戶一致。

常見(jiàn)的cpu飆升原因

程序中存在死循環(huán)或者長(zhǎng)時(shí)間占用 CPU 的操作。比如,不合理的遞歸操作、循環(huán)操作等等。

程序中存在大量的計(jì)算操作,例如復(fù)雜的算法、大量的數(shù)值計(jì)算等等。

程序中存在大量的 IO 操作,例如讀寫文件、網(wǎng)絡(luò)通信等等。

程序中存在大量的線程創(chuàng)建和銷毀操作,以及線程間的競(jìng)爭(zhēng)和同步操作。

程序中存在內(nèi)存泄漏或者內(nèi)存溢出,導(dǎo)致 JVM 不斷進(jìn)行垃圾回收。

程序中存在大量的數(shù)據(jù)庫(kù)操作,導(dǎo)致數(shù)據(jù)庫(kù)連接池的耗盡和數(shù)據(jù)庫(kù)負(fù)載過(guò)高。

針對(duì)這些問(wèn)題,需要具體情況具體分析,采取相應(yīng)的優(yōu)化措施,例如修改代碼邏輯、優(yōu)化算法、降低 IO 操作頻率、減少線程創(chuàng)建和銷毀、增加 JVM 內(nèi)存等等。

總結(jié)

到此這篇關(guān)于java應(yīng)用cpu飆升(超過(guò)100%)故障排查步驟的文章就介紹到這了,更多相關(guān)java應(yīng)用cpu飆升故障內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MyBatisPlus中@TableField注解的基本使用

    MyBatisPlus中@TableField注解的基本使用

    這篇文章主要介紹了MyBatisPlus中@TableField注解的基本使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Intellij IDEA使用restclient測(cè)試的教程圖解

    Intellij IDEA使用restclient測(cè)試的教程圖解

    這篇文章主要介紹了Intellij IDEA使用restclient測(cè)試的教程圖解,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • SpringBoot使用JdbcTemplate訪問(wèn)操作數(shù)據(jù)庫(kù)基本用法

    SpringBoot使用JdbcTemplate訪問(wèn)操作數(shù)據(jù)庫(kù)基本用法

    這篇文章主要介紹了SpringBoot使用JdbcTemplate訪問(wèn)操作數(shù)據(jù)庫(kù)基本用法,Spring對(duì)數(shù)據(jù)庫(kù)的操作在jdbc上s面做了深層次的封裝,使用spring的注入功能,可以把DataSource注冊(cè)到JdbcTemplate之中。下文詳細(xì)內(nèi)容需要的小伙伴可以參考一下
    2022-02-02
  • lombok的@EqualsAndHashcode注解詳解

    lombok的@EqualsAndHashcode注解詳解

    這篇文章主要介紹了lombok的@EqualsAndHashcode注解的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • Spring Boot統(tǒng)一返回體的踩坑記錄

    Spring Boot統(tǒng)一返回體的踩坑記錄

    這篇文章主要給大家介紹了關(guān)于Spring Boot統(tǒng)一返回體踩坑的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • SpringCloud Zuul過(guò)濾器和谷歌Gauva實(shí)現(xiàn)限流

    SpringCloud Zuul過(guò)濾器和谷歌Gauva實(shí)現(xiàn)限流

    這篇文章主要介紹了SpringCloud Zuul過(guò)濾器和谷歌Gauva實(shí)現(xiàn)限流,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 簡(jiǎn)單談?wù)凧ava垃圾回收

    簡(jiǎn)單談?wù)凧ava垃圾回收

    本文是看了James Gosling的<<Java程序設(shè)計(jì)語(yǔ)言>>后結(jié)合自己的一些項(xiàng)目經(jīng)驗(yàn),簡(jiǎn)單總結(jié)下關(guān)于java的垃圾回收問(wèn)題的看法,有需要的小伙伴可以參考下
    2016-05-05
  • 通過(guò)java字節(jié)碼分析學(xué)習(xí)對(duì)象初始化順序

    通過(guò)java字節(jié)碼分析學(xué)習(xí)對(duì)象初始化順序

    今天用了jmock對(duì)進(jìn)行單元測(cè)試編碼,發(fā)現(xiàn)一個(gè)比較奇怪的語(yǔ)法,static使用方法,見(jiàn)下面例子
    2013-11-11
  • Kotlin基礎(chǔ)教程之?dāng)?shù)據(jù)類型

    Kotlin基礎(chǔ)教程之?dāng)?shù)據(jù)類型

    這篇文章主要介紹了Kotlin基礎(chǔ)教程之?dāng)?shù)據(jù)類型的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • 使用Java獲取List交集數(shù)據(jù)的實(shí)現(xiàn)方案小結(jié)

    使用Java獲取List交集數(shù)據(jù)的實(shí)現(xiàn)方案小結(jié)

    今天遇到一個(gè)小需求,當(dāng)用戶上傳了一個(gè)關(guān)于用戶數(shù)據(jù)的列表,我們需要將其與數(shù)據(jù)庫(kù)中已有的用戶數(shù)據(jù)進(jìn)行比較,所以本文給大家介紹了使用Java獲取List交集數(shù)據(jù)的實(shí)現(xiàn)方案小結(jié),文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2024-03-03

最新評(píng)論