国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

記一次內(nèi)存泄漏排查

這篇具有很好參考價值的文章主要介紹了記一次內(nèi)存泄漏排查。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

記一次內(nèi)存泄漏排查

背景

最近某項目的服務(wù)突然告警,cpu超85%,隨后就是服務(wù)宕機(jī)。交付重啟服務(wù)后恢復(fù)正常但是隨后不久又開始告警,特別是白天,嚴(yán)重影響客戶業(yè)務(wù)進(jìn)行。

問題排查

1、分析日志
查看日志的過程中發(fā)現(xiàn)存在內(nèi)存溢出(OOM),思考要么存在內(nèi)存泄漏要么業(yè)務(wù)上觸發(fā)了某個接口存在大對象,結(jié)合業(yè)務(wù)情況,應(yīng)該是前一種情況大一些。
記一次內(nèi)存泄漏排查

2、查看CPU占用高的線程
按步驟

  1. top 找到cpu高的進(jìn)程
  2. top -Hp pid 找到進(jìn)程中cpu占的比較高的線程
  3. printf ‘%x’ 線程id 打印出線程16進(jìn)制id
  4. jstack pid >xxx.txt 將線程信息輸出到某個文件方便查詢
  5. 將cpu高的那個在步驟4中的xxx.txt中搜索出來

排查出線程都是: gc task thread parallelgc 這類線程(忘記截圖了)占用CPU高。那么這里其實可以大致得出結(jié)論了。

3、用arthas dashboard 查看應(yīng)用運行情況
老年代占比98%,隨后CPU飆升(很多公司生產(chǎn)可能都不允許使用arthas,上面步驟2其實基本可以得出結(jié)論了)

4、結(jié)論
代碼存在內(nèi)存泄漏,老年代占用率過高,導(dǎo)致系統(tǒng)頻繁full gc ,從而系統(tǒng)CPU飆升直至宕機(jī)。

問題處理

1、給啟動參數(shù)加上 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${目錄} (這塊疏忽,之前沒加)
2、使用 MAT 分析 hprof文件

這里有個插曲,hprof文件太大,導(dǎo)致MAT打開報OOM。如果你是eclipse中安裝的MAT 插件,可以在 setting(perferences)-> java -> Installed JREs -> jre -> edit -> variables 設(shè)置 內(nèi)存大小 :
server -Xms4096m -Xmx4096m -XX:PermSize=512m -XX:MaxPermSize=512m
記一次內(nèi)存泄漏排查

3、找到內(nèi)存泄漏代碼
有MAT幫忙,找到對應(yīng)泄漏代碼其實就簡單多了。找到內(nèi)存占用最大得結(jié)果線程進(jìn)行查看就能看到對應(yīng)的代碼。

記一次內(nèi)存泄漏排查
記一次內(nèi)存泄漏排查
記一次內(nèi)存泄漏排查

4、修改代碼
看了下,是代碼查詢的時候,一次查詢list過大導(dǎo)致的。后續(xù)和相關(guān)開發(fā)溝通后,優(yōu)化了sql,重新發(fā)包部署。

5、觀察
一段時間后服務(wù)器cpu恢復(fù)平穩(wěn)~~~~~
記一次內(nèi)存泄漏排查

至此,本次排查結(jié)束,服務(wù)CPU恢復(fù)正常狀態(tài)。后面又了解,為啥之前服務(wù)運行的好好的,最近這么頻繁宕機(jī),一個是內(nèi)存泄漏,還有就是業(yè)務(wù)方系統(tǒng)全面鋪開,業(yè)務(wù)壓力驟增,從原來的日均五萬的量增加到了十萬,后續(xù)可能還會增加,借此機(jī)會和業(yè)務(wù)方溝通,又升級了服務(wù)硬件配置,嘻~~~~文章來源地址http://www.zghlxwxcb.cn/news/detail-415134.html

到了這里,關(guān)于記一次內(nèi)存泄漏排查的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 在線排查內(nèi)存泄漏的步驟

    在線排查內(nèi)存泄漏的步驟

    想到內(nèi)存泄漏問題的排查,很多開發(fā)會想到使用 Valgrind。使用 Valgrind 有幾個局限: 需要安裝 Valgrind 需要啟停服務(wù)進(jìn)程 影響服務(wù)進(jìn)程性能 依賴于測試用例覆蓋到 BUG 分支 由于這些原因,線上內(nèi)存泄露問題并不適合用 Valgrind 來排查。相反,利用 top、pmap 等命令,以及 GDB(包括

    2024年02月06日
    瀏覽(25)
  • 排查Javascript內(nèi)存泄漏案例(一)

    排查Javascript內(nèi)存泄漏案例(一)

    Chrome DevTools 里的 Performance 面板和 Memory 面板可以用來定位內(nèi)存問題。 為了證明螃蟹的聽覺在腿上,一個專家捉了只螃蟹并沖它大吼,螃蟹很快就跑了。然后捉回來再沖它吼,螃蟹又跑了。最后專家把螃蟹的腿都切了,又對著螃蟹大吼,螃蟹果然一動不動…… 定位問題首先要

    2024年02月07日
    瀏覽(23)
  • 記一次Nacos線程數(shù)飆升排查

    記一次Nacos線程數(shù)飆升排查

    近日有個項目用到了Nacos做注冊中心。運行一段時間發(fā)現(xiàn)Nacos服務(wù)的線程數(shù)達(dá)到了1k+。這肯定是不正常的。 環(huán)境: 鏡像nacos-server 2.2.3 docker-compose編排部署 Nacos standalone模式 問題表現(xiàn) docker stats nacos 發(fā)現(xiàn)該容器的線程數(shù)1k+ 用Fastthread分析stack文件表現(xiàn)如下 數(shù)量最多的線程線程棧如

    2024年02月09日
    瀏覽(30)
  • 記一次線上BUG排查過程

    記一次線上BUG排查過程

    1. 線上遇到一個非常奇怪的bug,為一個用戶分配業(yè)務(wù)線類型后,該用戶登錄時,提示502,但其它的用戶登錄完全是正常的 2. 問題現(xiàn)象 3. 排查思路 先去看線上日志,看是否有error,但日志里邊這個接口200正常返回 本地debug,也復(fù)現(xiàn)一樣問題,在分配角色類型超過22個總數(shù)時就報

    2024年02月09日
    瀏覽(30)
  • 記一次kafka消息積壓的排查

    kafka消息積壓報警,首先進(jìn)行了自查,這個現(xiàn)象頻頻出現(xiàn),之前每次都是先重新分配分區(qū)或者回溯(消息可丟棄防止大量積壓消費跟不上)。 根據(jù)手冊首先排查下消息拉取是否正常,看到了消息拉取線程是waiting狀態(tài),然后看到kafka這塊邏輯是消費線程阻塞了拉取線程。 對比了

    2024年03月24日
    瀏覽(21)
  • 記一次docker啟動失敗的問題排查

    記一次docker啟動失敗的問題排查

    以前在虛擬機(jī)上安裝了一個docker,可以正常使用的,今天突然宿主機(jī)機(jī)器內(nèi)存條壞了,換了內(nèi)存條后啟動機(jī)器,再使用 systemctrl start docker 啟動docker,最后使用 docker start containID 啟動報錯 網(wǎng)上沒有找到相應(yīng)的描述,仔細(xì)分析看是 write /proc/sys/kernel/shmmni 報錯了,錯誤原因是 in

    2024年02月14日
    瀏覽(27)
  • 使用Visual Leak Detector排查內(nèi)存泄漏

    目錄 1、VLD工具概述 2、下載、安裝VLD 2.1、下載VLD 2.2、安裝VLD 3、VLD安裝目錄及文件說明

    2024年01月16日
    瀏覽(32)
  • [JAVA]websocket引起的內(nèi)存泄漏問題排查

    [JAVA]websocket引起的內(nèi)存泄漏問題排查

    項目運行一天后出現(xiàn)了 java.lang.OutOfMemoryError: GC overhead limit exceeded 的錯誤,造成系統(tǒng)宕機(jī)。這說明給JVM分配的內(nèi)存已經(jīng)耗盡,不足以支撐垃圾回收進(jìn)行內(nèi)存回收工作,意味著程序占用的內(nèi)存隨著時間大小提升,最終耗盡。 2.1 宏觀分析 從字面意思來看,GC(garbage collection)所需

    2024年02月13日
    瀏覽(27)
  • 【記一次線上事故的排查思路】- CPU飆升問題排查

    【記一次線上事故的排查思路】- CPU飆升問題排查

    由于項目排期較緊,臨時從其他組調(diào)來三個開發(fā)資源幫我一起做項目,難免上線的時候大家的需求一塊上線。 問題來了,上線三天后,線上CPU總是莫名奇妙的突然飆升,飆升后CPU并未降下來,而是一直處在高點。 由于是線上導(dǎo)致的問題,CPU超限后,會自動重啟項目,未能保

    2024年01月23日
    瀏覽(27)
  • jvm內(nèi)存溢出排查(使用idea自帶的內(nèi)存泄漏分析工具)

    jvm內(nèi)存溢出排查(使用idea自帶的內(nèi)存泄漏分析工具)

    想分析堆內(nèi)存溢出,一定在運行jar包時就寫上參數(shù) -XX:+HeapDumpOnOutOfMemoryError ,可以看我之前關(guān)于如何運行jar包的文章。若你沒有寫??梢詫懮蠀?shù),重啟你的項目,等你的項目發(fā)生下一次堆內(nèi)存溢出異常,在運行的同級文件夾,將產(chǎn)生類似這樣一個文件 java_pid74935.hprof ,若你

    2024年02月09日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包