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

linux下cpu飆高原因排查過程詳解

 更新時間:2021年11月30日 11:04:43   作者:負債程序猿  
大家好,本篇文章主要講的是linux下cpu飆高原因排查過程詳解,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下哦

前言

cpu飆高是很常見的線上問題,這都不會的話,屬實有點拉跨

在這里插入圖片描述

兄弟萌不用慌,來我教你一套連招

開始

先來個項目,整個api,到時候我們請求/cpu/{count}就能手動拉高cpu,機智鬼~

    @GetMapping("/cpu/{count}")
    public long cpuTest(@PathVariable("count") long count) {
        long number = 0;
        for (int i = 0; i < count; i++) {
            number++;
        }
        return number;
    }

打包、上傳、啟動

在這里插入圖片描述

跑起來了,記住這個進程號 14849

我們先top看看正常情況下的cpu使用率

在這里插入圖片描述

很合理

模擬線上cpu飆高

我們請求/cpu/{100000000000}接口,把cpu拉起來,同時top觀察cpu使用率

在這里插入圖片描述

直接干到98%,很nice

ok入戲,我們現(xiàn)在線上出問題了,cpu一直很高,老大叫你找找原因,開始支棱起來

其實我們現(xiàn)在已經(jīng)知道是誰把cpu拉高了,但還不夠細,只知道哪個項目出的問題遠遠不夠,我們應該找到罪魁禍首,到底是哪個方法的多少行導致的問題,這才能讓老大直呼內(nèi)行

步驟

jps+top 定位應用進程

pidtop -Hp {pid}找到線程tid

將 tid 轉(zhuǎn)換成十六進制 printf “%x\n” {tid}

打印堆棧信息 jstack

過濾出我們想要的

排查

進程id已經(jīng)確定是 14849,下一步我們要找到是哪個線程搞的鬼

top -Hp 14849

在這里插入圖片描述

很明顯是這個14908搞的鬼

轉(zhuǎn)十六進制

在這里插入圖片描述

打印堆棧

在這里插入圖片描述

堆棧信息顯示是TestController里面的第20行出的幺蛾子,我們進入代碼驗證

在這里插入圖片描述

問題不大

破案

撒花

到此這篇關(guān)于linux下cpu飆高原因排查過程詳解的文章就介紹到這了,更多相關(guān)linux cpu飆高原因排查內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論