亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java服務(wù)cpu100%的解決過程分享

 更新時(shí)間:2024年05月01日 07:37:28   作者:千云  
最近一個(gè)任務(wù)是優(yōu)化一個(gè)導(dǎo)出的功能,但是點(diǎn)擊功能時(shí)發(fā)現(xiàn),程序長時(shí)間無反應(yīng),過一段時(shí)間又有反應(yīng),通過查看服務(wù)的監(jiān)控發(fā)現(xiàn),服務(wù)存在cpu持續(xù)100%的情況,下面分享一下我的處理方案和過程,需要的朋友可以參考下

背景

最近一個(gè)任務(wù)是優(yōu)化一個(gè)導(dǎo)出的功能,但是點(diǎn)擊功能時(shí)發(fā)現(xiàn),程序長時(shí)間無反應(yīng),過一段時(shí)間又有反應(yīng),通過查看服務(wù)的監(jiān)控發(fā)現(xiàn),服務(wù)存在cpu持續(xù)100%的情況,下面分享一下我的處理方案和過程

處理過程

1.程序cpu監(jiān)控圖

2. 定位 通過查看cpu的使用率發(fā)現(xiàn)服務(wù)cpu100%的情況,卻在兩個(gè)節(jié)點(diǎn)上都存在問題,于是查看cpu情況

a. 登錄服務(wù)器執(zhí)行top命令,查看cpu使用率

-- 此圖非100%時(shí)截圖

b. 使用to -Hp [pid] 命令查看具體的線程占用cpu情況

我們可以看到506和856較高

c. 執(zhí)行 printf "%x\n" [線程id] 將線程id轉(zhuǎn)換成16進(jìn)制,并在前綴前+0x,目的是等下在線程日志里面找到對應(yīng)的線程具體信息,cpu最高時(shí)當(dāng)時(shí)我得到的線程16進(jìn)制為0x1a8

d. 執(zhí)行jstack [pid] > jstack.txt

e. 通過c步驟得到的0x1a8查詢jstack.txt

線程日志發(fā)現(xiàn),這個(gè)線程其實(shí)是GC線程,也就說明存在fullgc導(dǎo)致了cpu持續(xù)過高,而fullgc都是由大對象導(dǎo)致的,這就以為這系統(tǒng)中存在著大對象。

f. 查看jvm內(nèi)存情況

存在內(nèi)存快照上找到了大對象

g. 查看程序日志

發(fā)現(xiàn)這個(gè)定時(shí)任務(wù)一直在執(zhí)行,在類中發(fā)現(xiàn)了和大對象相同的類

e. 找到原因,此定時(shí)任務(wù)一次性查詢20多萬條數(shù)據(jù)到對象中,導(dǎo)致fullgc,關(guān)掉定時(shí)任務(wù),服務(wù)恢復(fù)正常

結(jié)語

本次問題的原因是fullgc導(dǎo)致cpu使用率過高,對于cpu過高的異常很多都是偶現(xiàn)的,所以不太容易排查,因?yàn)榛径家诔霈F(xiàn)100%時(shí)才能看到哪些線程出問題。

以上就是Java服務(wù)cpu100%的解決過程分享的詳細(xì)內(nèi)容,更多關(guān)于Java服務(wù)cpu100%的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • java實(shí)現(xiàn)手機(jī)短信驗(yàn)證的基本思路

    java實(shí)現(xiàn)手機(jī)短信驗(yàn)證的基本思路

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)手機(jī)短信驗(yàn)證的基本思路,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • knife4j3.0.3整合gateway和注冊中心的詳細(xì)過程

    knife4j3.0.3整合gateway和注冊中心的詳細(xì)過程

    這篇文章主要介紹了knife4j3.0.3整合gateway和注冊中心的詳細(xì)過程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • Java布爾值Boolean和boolean之間轉(zhuǎn)換實(shí)例用法

    Java布爾值Boolean和boolean之間轉(zhuǎn)換實(shí)例用法

    在本篇文章里小編給大家整理的是一篇關(guān)于Java布爾值Boolean和boolean之間轉(zhuǎn)換實(shí)例用法內(nèi)容,有需要的朋友們跟著學(xué)習(xí)參考下。
    2021-06-06
  • java讀取word-excel-ppt文件代碼

    java讀取word-excel-ppt文件代碼

    OFFICE文檔使用POI控件,PDF可以使用PDFBOX0.7.3控件,完全支持中文,用XPDF也行,不過感覺PDFBOX比較好,而且作者也在更新。水平有限,萬望各位指正
    2009-04-04
  • SpringBoot2種單元測試方法解析

    SpringBoot2種單元測試方法解析

    這篇文章主要介紹了SpringBoot2種單元測試方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Java線程的生命周期的詳解

    Java線程的生命周期的詳解

    這篇文章主要介紹了Java線程的生命周期的詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家理解掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-10-10
  • 圖解Spring框架的設(shè)計(jì)理念與設(shè)計(jì)模式

    圖解Spring框架的設(shè)計(jì)理念與設(shè)計(jì)模式

    這篇文章主要通過多圖詳細(xì)解釋Spring框架的設(shè)計(jì)理念與設(shè)計(jì)模式,需要的朋友可以參考下
    2015-08-08
  • SpringBoot+Redis實(shí)現(xiàn)接口防刷的示例代碼

    SpringBoot+Redis實(shí)現(xiàn)接口防刷的示例代碼

    在實(shí)際開發(fā)中,會(huì)出現(xiàn)用戶多次點(diǎn)擊發(fā)送請求,本文主要介紹了SpringBoot+Redis實(shí)現(xiàn)接口防刷的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • SpringBoot 動(dòng)態(tài)配置郵箱發(fā)件人過程解析

    SpringBoot 動(dòng)態(tài)配置郵箱發(fā)件人過程解析

    這篇文章主要介紹了SpringBoot 動(dòng)態(tài)配置郵箱發(fā)件人過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • protobuf簡介及使用流程

    protobuf簡介及使用流程

    本文介紹了Protocol Buffers(protobuf)的數(shù)據(jù)結(jié)構(gòu)序列化和反序列化框架,包括其特點(diǎn)、使用流程和快速上手,通過一個(gè)簡單的通訊錄示例,展示了如何創(chuàng)建.proto文件、添加注釋、編寫消息定義、編譯.proto文件以及進(jìn)行序列化和反序列化操作,感興趣的朋友一起看看吧
    2025-02-02

最新評論