精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

美團一面,你碰到過CPU 100%的情況嗎?你是怎么處理的?

開發(fā) 前端
為了防止并發(fā)場景中,多個線程修改公共資源,導致的數(shù)據(jù)異常問題,很多時候我們會在代碼中使用synchronized?或者Lock加鎖。

CPU被打滿的常見原因

1. 死循環(huán)

在實際工作中,可能每個開發(fā)都寫過死循環(huán)的代碼。

死循環(huán)有兩種:

  1. 在 while、for、forEach 循環(huán)中的死循環(huán)。
  2. 無限遞歸。

這兩種情況,程序會不停地運行,使用寄存器保存循環(huán)次數(shù)或者遞歸深度,一直占用 cpu,導致 cpu 使用率飆升。

在使用 JDK1.7 時,還有些死循環(huán)比如多線程的環(huán)境下,往 HashMap 中 put 數(shù)據(jù),可能會導致鏈表出現(xiàn)死循環(huán)。

就會導致cpu不斷飆高。

2.大量GC

我之前參與過餐飲相關(guān)的業(yè)務(wù)系統(tǒng)開發(fā),當時我所在的團隊是菜品的下游業(yè)務(wù)。

當時菜品系統(tǒng)有菜品的更新,會發(fā)kafka消息,我們系統(tǒng)訂閱該topic,就能獲取到最近更新的菜品數(shù)據(jù)。

同步菜品數(shù)據(jù)的功能,上線了一年多的時候,沒有出現(xiàn)過什么問題。

但在某一天下午,我們收到了大量 CPU100% 的報警郵件。

追查原因之后發(fā)現(xiàn),菜品系統(tǒng)出現(xiàn)了 bug,我們每次獲取到的都是全量的菜品數(shù)據(jù),并非增量的數(shù)據(jù)。

一次性獲取的數(shù)據(jù)太多。

菜品修改還是比較頻繁的,也就是說我們系統(tǒng),會頻繁地讀取和解析大量的數(shù)據(jù),導致 CPU 不斷飆升。

其根本原因是頻繁的full gc。

3. 大量計算密集型任務(wù)

有時候,我們的業(yè)務(wù)系統(tǒng)需要實時計算數(shù)據(jù),比如:電商系統(tǒng)中需要實時計算優(yōu)惠后的最終價格。

或者需要在代碼中,從一堆數(shù)據(jù)中,統(tǒng)計匯總出我們所需要的數(shù)據(jù)。

如果這個實時計算或者實時統(tǒng)計的場景,是一個非常耗時的操作,并且該場景的請求并發(fā)量還不小,就可能會導致 cpu 飆高。

因為實時計算需要消耗 cpu 資源,如果一直計算,就會一直消耗 cpu 資源。

4. 死鎖

為了防止并發(fā)場景中,多個線程修改公共資源,導致的數(shù)據(jù)異常問題,很多時候我們會在代碼中使用synchronized或者Lock加鎖。

這樣多個線程進入臨界方法或者代碼段時,需要競爭某個對象或者類的鎖,只有搶到相應的鎖,才能訪問臨界資源。其他的線程,則需要等待,擁有鎖的線程釋放鎖,下一次可以繼續(xù)競爭那把鎖。

有些業(yè)務(wù)場景中,某段代碼需要線程獲取多把鎖,才能完成業(yè)務(wù)邏輯。

但由于代碼的 bug,或者釋放鎖的順序不正確,可能會引起死鎖的問題。

例如:

"pool-4-thread-1" prio=10 tid=0x00007f27bc11a000 nid=0x2ae9 waiting on condition [0x00007f2768ef9000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  <0x0000000090e1d048> (a java.util.concurrent.locks.ReentrantLock$FairSync)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)

比如線程 a 擁有鎖 c,需要獲取鎖 d,才能完成業(yè)務(wù)邏輯。

而剛好此時線程 b 擁有鎖 d,需要獲取鎖 c,才能完成業(yè)務(wù)邏輯。

線程 a 等待線程 b 釋放鎖,而線程 b 等待線程 a 釋放鎖,兩個線程都持有對方需要的鎖,無法主動釋放,就會出現(xiàn)死鎖問題。

死鎖會導致 CPU 使用率飆升。

CPU被打滿如何排查

1. 使用系統(tǒng)工具和JDK自帶的jstack工具

第一步:使用top命令找出占用CPU最高的Java進程

首先,使用top命令確認是不是Java進程是罪魁禍首。Java進程要么是個后臺任務(wù),要么是個jar包,比如一個Spring Boot服務(wù)。

圖片圖片

假設(shè)發(fā)現(xiàn)占用CPU 99.7%的線程是Java進程,進程PID為13731。

第二步:找到占用CPU最高的線程

接下來,還是用top命令,只不過加一個參數(shù)-Hp,就是下面這樣:

top -Hp 13731

H參數(shù)表示要顯示線程級別的信息,p則表示指定的pid,也就是進程ID。執(zhí)行之后,這個Java進程中占用線程占用CPU的情況就列出來了。假設(shè)占用CPU最高的那個線程PID為13756。

圖片圖片

第三步:保存線程堆棧信息

這就要用到JDK默認提供的一個工具——jstack。jstack用于生成Java進程的線程快照(thread dump)。線程快照是一個關(guān)于Java進程中所有線程當前狀態(tài)的快照,包括每個線程的堆棧信息。通過分析線程快照,可以了解Java進程中各個線程的運行狀態(tài)、鎖信息等。

我們用jstack的目的是將那個占用CPU最高的線程的堆棧信息搞下來,然后進一步分析。使用命令jstack pid > out.log將某個進程的堆棧信息輸出到out.log文件中。

jstack 13731 > thread_stack.log

第四步:在線程棧中查找罪魁禍首的線程

將13756轉(zhuǎn)換為16進制,可以用在線進制轉(zhuǎn)換工具直接轉(zhuǎn)換,比如這個。轉(zhuǎn)換結(jié)果為0x35bc。

然后在線程棧中,也就是上一步保存的那個thread_stack.log文件,查找這個16進制的線程ID(0x35bc)。

這樣,我們就能看到需要的線程名稱、線程狀態(tài),哪個方法的哪一行代碼消耗了最多的CPU都很清楚了。

圖片圖片

2. 使用Arthas探測工具

Arthas是阿里開源的一款線上監(jiān)控診斷產(chǎn)品,通過全局視角實時查看應用load、內(nèi)存、GC、線程的狀態(tài)信息,并能在不修改應用代碼的情況下,對業(yè)務(wù)問題進行診斷,包括查看方法調(diào)用的入?yún)ⅰ惓#O(jiān)測方法執(zhí)行耗時,類加載信息等,大大提升線上問題排查效率。

安裝Arthas

要使用Arthas,你需要先把它安裝到你的目標服務(wù)器上。

  1. 下載jar包:
curl -O https://arthas.aliyun.com/arthas-boot.jar
  1. 啟動Arthas服務(wù):
java -jar arthas-boot.jar

啟動之后,會列出當前這臺服務(wù)器上的所有Java進程,選擇你要排查的那個服務(wù)即可。出現(xiàn)arthas@之后表示已經(jīng)啟動,并成功attach到目標進程上。

圖片圖片

可以輸入命令dashboard看一下實時面板,默認5秒刷新一次,在這個面板上能夠看到線程、內(nèi)存堆棧、GC和Runtime的基本信息。如果你用過VisualVM的話,操作界面與之類似。

找到占用CPU最高的線程

執(zhí)行thread命令,這個命令會顯示所有線程的信息,并且把CPU使用率高的線程排在前面。

這樣,一眼就看出來了,第一個線程的CPU使用率高達99%。

圖片圖片

查看堆棧信息

使用thread ID獲取堆棧信息,其實就是jstack pid相同的作用。通過前一步看到這個線程的ID是18,然后執(zhí)行:

thread 18

圖片圖片

直接就看出來了出現(xiàn)問題的位置,比如TestController.java文件的high方法的第23行。然后可以進入代碼查看具體問題。

參考答案

面試官:“你碰到過CPU 100%的情況嗎?你是怎么處理的?”

生產(chǎn)環(huán)境如果cpu已經(jīng)被打滿了,不要一上來就說什么top,jstack,記住,真實的生產(chǎn)環(huán)境如果CPU已經(jīng)要被打爆了的話

第一選擇肯定是重啟,并且如果你近段時間有發(fā)布的話,還要考慮是否可以回滾,保障生產(chǎn)環(huán)境的穩(wěn)定性是最重要的

還有就是,如果CPU已經(jīng)被打爆了,不管arthas還是jstack大概率也是執(zhí)行不了的,jvm無法響應

我:“之前碰到過CPU被打滿的情況,我們線上第一時間做了重啟,在重啟的過程中,我們?nèi)ゲ榱朔?wù)在那段時間的日志、鏈路、指標,沒有發(fā)現(xiàn)特殊的異常。”

有時候CPU100&會伴隨非常明顯的日志、鏈路或者指標異常。例如:通過gc的指標發(fā)現(xiàn),發(fā)現(xiàn)full gc的次數(shù)激增,或者發(fā)現(xiàn)內(nèi)存的使用率很高,這個時候大概率是因為gc導致的cpu 100%。這個時候就不要再去jstack了,應該第一次時間查看堆dump文件,確認是哪個對象占用了大量內(nèi)存

我:“當服務(wù)重啟完成后,我們開始排查具體的原因。我們通過定期執(zhí)行top命令,發(fā)現(xiàn)java進程的CPU的使用率確實在慢慢增加”

我:“接著,我通過top -Hp以及jstack命令拿到了應用里cpu使用率最高的那個線程的堆棧,通過分析堆棧最終定位到了具體的代碼,是因為代碼觸發(fā)了一個臨界值,進入了死循環(huán)”

下面這段代碼是我實際工作碰到一個導致線上CPU 100%的代碼:

public ShortUrlRandomSeed getAvailableSeed()  {
  MachineInfo machineInfo = UrlConverUtil.getMachineInfo();
  for (; ; ) {
    // 獲取種子
    ShortUrlRandomSeed seed = shortUrlSeedService.getAvailableSeed(machineInfo);
    if (seed != null) {
      int influenceNum = shortUrlSeedService.updateSeedStatus(seed.getId());
      if (influenceNum > 0) {
        return seed;
      }
    }
  }
}

這段代碼的作用是為了獲取一個種子用于短鏈的生成,在項目上線之初預生成了接近21w個種子,這個代碼在線上跑了3年了一直沒有問題,直到去年的某一天,21w個種子用光了,seed一直為null,開始死循環(huán),最終導致CPU 100%

責任編輯:武曉燕 來源: 明智說
相關(guān)推薦

2025-03-25 12:00:00

@Value?Spring開發(fā)

2023-02-27 09:03:23

JavaCAS

2024-04-24 09:02:58

線程池面試鎖升級

2024-04-01 00:00:00

Redis緩存服務(wù)消息隊列

2024-10-31 08:50:14

2025-04-27 01:30:01

業(yè)務(wù)系統(tǒng)QPS

2021-08-29 18:36:17

MySQL技術(shù)面試題

2023-07-13 09:16:47

循環(huán)隊列指針front?

2025-04-15 08:00:00

Java開發(fā)服務(wù)網(wǎng)格

2025-03-07 00:11:00

JWTJSONSession

2018-07-09 08:35:45

Windows 10WindowsBug

2023-04-03 07:57:00

2023-04-21 13:57:38

Redis阻塞半自動

2024-04-22 00:00:00

CASCPU硬件

2022-01-05 21:54:51

網(wǎng)絡(luò)分層系統(tǒng)

2022-06-15 09:02:32

JVM線程openJDK

2022-02-10 09:04:50

架構(gòu)

2024-04-08 00:00:00

asyncawaiPromise

2022-11-30 17:13:05

MySQLDynamic存儲

2024-04-17 08:02:29

接口refused程序
點贊
收藏

51CTO技術(shù)棧公眾號

国产在线视频一区二区| 国产a久久精品一区二区三区| 亚洲人123区| 国产欧美日韩视频一区二区三区| 国产福利拍拍拍| 怕怕欧美视频免费大全| 日韩一级黄色片| av动漫在线看| 精品欧美色视频网站在线观看| 成人丝袜高跟foot| 国产精品免费视频久久久| 欧美三级小视频| 国产免费播放一区二区| 日韩免费观看高清完整版在线观看| 青青草精品视频在线| av大全在线免费看| 成人国产精品免费观看| 国产美女91呻吟求| 偷偷操不一样的久久| 欧美成人自拍| 亚洲欧美999| 91超薄肉色丝袜交足高跟凉鞋| 欧美日韩激情电影| 一区二区欧美国产| 四虎影院一区二区三区 | 国产91亚洲精品一区二区三区| 天堂中文在线网| 午夜精品视频| 日韩在线视频播放| 在线免费观看日韩av| 亚洲精品v亚洲精品v日韩精品| 91国偷自产一区二区使用方法| 精品一二三四五区| 国产精品一卡二卡三卡| 国产农村妇女毛片精品久久麻豆| 狠狠色综合一区二区| 国产色在线视频| 日韩高清电影一区| 97国产在线视频| 九九热精彩视频| 永久亚洲成a人片777777| 中国日韩欧美久久久久久久久| 亚洲精品中文字幕在线播放| jizz18欧美18| 日韩亚洲电影在线| 99视频在线观看视频| 亚洲人成777| 欧美色涩在线第一页| 国产精品天天av精麻传媒| 日本不良网站在线观看| 婷婷六月综合亚洲| 日本少妇高潮喷水视频| 9999精品成人免费毛片在线看| 一区二区高清在线| 日本福利视频网站| 激情av在线| 亚洲午夜在线视频| 丝袜人妻一区二区三区| 精品众筹模特私拍视频| 亚洲国产精品久久艾草纯爱| 精品无码国产一区二区三区av| 欧洲黄色一区| 午夜av一区二区| 国内自拍在线观看| 久久精品女人天堂av免费观看| 色综合久久久久综合99| 日韩毛片在线免费看| 午夜日韩成人影院| 欧美性受极品xxxx喷水| 久久国产精品国产精品| 日韩免费大片| 日韩精品中文字幕一区| 国产人成视频在线观看| 尤物tv在线精品| 伊人激情综合网| 91久久国产综合| 欧美日韩爆操| 1769国产精品| 中文天堂在线视频| 国产一区二区三区免费看| 动漫3d精品一区二区三区| 欧美 日韩 国产 精品| 91免费视频网| 在线观看成人av电影| 手机在线免费av| 欧美性xxxxxx| 亚洲第一成肉网| ccyy激情综合| 这里精品视频免费| 久久久久无码国产精品不卡| 久久久久久久波多野高潮日日| 日韩免费高清在线观看| 国产乱码精品一区二区| 99在线视频精品| 亚洲v欧美v另类v综合v日韩v| 粗大黑人巨茎大战欧美成人| 精品动漫一区二区| 国产3p在线播放| 精品精品国产三级a∨在线| 一个色综合导航| 久久影院一区二区| 日韩av成人高清| 国产精品区一区二区三在线播放| 国产在线观看免费| 亚洲制服欧美中文字幕中文字幕| 人妻无码视频一区二区三区| 亚洲精品午夜| 深夜福利一区二区| 日韩欧美亚洲视频| 国产一区久久久| 日本精品视频一区| 第四色日韩影片| 欧美精品久久一区| 色欲av无码一区二区三区| 亚洲自拍偷拍网| 国产精品成人播放| 性感美女视频一二三| 亚洲欧美偷拍三级| 性生交免费视频| 色综合www| 久久久久久久色| 99久久精品免费看国产交换| 国产日韩欧美一区二区三区乱码 | 国内精品久久久久久野外| 欧美日韩国产精品一区二区三区四区| 国产永久免费网站| 成久久久网站| 日韩美女在线播放| 涩涩视频在线观看免费| 亚洲成av人综合在线观看| 亚洲免费在线播放视频| 日韩中字在线| 国产精品网红直播| 日韩电影免费| 精品免费在线视频| 三级视频网站在线观看| 欧美 亚欧 日韩视频在线| 国产啪精品视频| 在线观看av的网站| 欧美亚洲国产一区二区三区va | 91精品国产高清自在线| 亚洲精品国产精品国| 中文字幕亚洲在| 在线观看av网页| 欧美日中文字幕| 国产精品久久二区| 精品三级久久久久久久电影聊斋| 欧美日韩国产精品专区| 中文字幕乱码在线| 亚洲毛片av| 狠狠久久综合婷婷不卡| 蜜桃视频www网站在线观看| 亚洲国产精品久久久久久| 国产精彩视频在线| 成人精品在线视频观看| 日韩一级性生活片| 欧美一区二区三区久久| 欧美影院在线播放| 韩国免费在线视频| 欧美色电影在线| 手机在线免费看毛片| 国产一区二区在线观看视频| 国产91视频一区| 成人三级av在线| 5252色成人免费视频| 成人在线二区| 69堂国产成人免费视频| 久久高清无码视频| 99视频国产精品| 国产一区二区视频免费在线观看| 欧美军人男男激情gay| 国产在线视频一区| 成人超碰在线| 亚洲欧美一区二区三区情侣bbw| av手机天堂网| 亚洲天堂网中文字| 91视频在线免费| 日本视频在线一区| 免费日韩在线观看| 亚洲国产合集| 成人夜晚看av| www.youjizz.com在线| 亚洲图片制服诱惑| 国产视频第一页| 欧美视频一区二区三区…| 精品国产成人亚洲午夜福利| 韩国成人福利片在线播放| 老司机激情视频| 国产区精品区| 91精品久久香蕉国产线看观看| 激情黄产视频在线免费观看| 色香阁99久久精品久久久| 免费观看毛片网站| 欧美撒尿777hd撒尿| 国产一级片久久| 国产欧美va欧美不卡在线| 成人高清在线观看视频| 久久aⅴ国产紧身牛仔裤| 福利网在线观看| 你微笑时很美电视剧整集高清不卡| 91视频88av| 亚洲综合电影| 欧美日本高清一区| 成年人免费在线视频| 精品成人一区二区三区| 亚洲最新av网站| 欧美性猛交99久久久久99按摩| 疯狂试爱三2浴室激情视频| 久久精品综合网| 国产欧美视频一区| 麻豆91精品91久久久的内涵| 国产v片免费观看| 91精品精品| 日韩免费电影一区二区| 久久久亚洲欧洲日产| 91在线视频成人| a成人v在线| 热久久免费国产视频| 狂野欧美性猛交xxxxx视频| 日韩在线观看精品| 国外av在线| 国产视频在线观看一区二区| 东京干手机福利视频| 在线成人午夜影院| 中文字幕在线观看欧美| 色综合久久66| 亚洲日本视频在线观看| 亚洲二区视频在线| 免费视频网站www| 亚洲日本在线视频观看| 青青青视频在线播放| 久久午夜老司机| 国产熟女高潮一区二区三区| 高潮精品一区videoshd| 爱情岛论坛亚洲自拍| 九九九久久久精品| 久久人人爽av| 麻豆精品在线观看| 国产aaaaa毛片| 视频一区中文字幕| 成人在线观看a| 久久久噜噜噜| 超碰影院在线观看| 石原莉奈一区二区三区在线观看| 久久成人免费观看| 美女国产一区| 免费观看成人在线视频| 视频一区二区国产| 最新中文字幕免费视频| 美国十次了思思久久精品导航 | 国产一区中文字幕| 天天操夜夜操很很操| 国产不卡视频在线播放| 韩国黄色一级片| 成人国产免费视频| 亚洲第九十七页| 久久九九99视频| 色偷偷男人天堂| 亚洲精品乱码久久久久久| 欧美黄色一区二区三区| 亚洲成av人片在线| 欧美一区二区三区四| 日韩人体视频一二区| 国产美女www| 制服丝袜一区二区三区| 亚洲av无码乱码国产精品| 精品国产青草久久久久福利| 婷婷在线免费观看| 亚洲欧美资源在线| 五月婷婷在线视频| 欧美高清电影在线看| 一本大道色婷婷在线| 国产成人a亚洲精品| 祥仔av免费一区二区三区四区| wwwxx欧美| 欧美精品第一区| 手机成人av在线| 99热这里只有精品8| 福利在线一区二区三区| 国产成人在线观看| 国产制服丝袜在线| 中文字幕在线不卡一区 | 国产综合自拍| 国内性生活视频| 久久99国产精品免费| 91超薄肉色丝袜交足高跟凉鞋| 久久久久久久久久久久久久久99 | 日本丰满少妇一区二区三区| 国产毛片一区二区三区va在线| 亚洲国产精品99| 天堂аⅴ在线地址8| 久久久爽爽爽美女图片| 日韩漫画puputoon| 官网99热精品| 日本欧美视频| 国产精品又粗又长| 美腿丝袜亚洲综合| av直播在线观看| 亚洲欧美国产毛片在线| 香蕉影院在线观看| 日韩一区二区精品葵司在线| 可以在线观看的av网站| 欧美日韩成人黄色| 中文另类视频| 久久手机视频| 欧美日韩中文| 污污的网站免费| 久久看人人爽人人| 黄网站免费在线| 欧美久久久久久久久久| 免费在线高清av| 久久免费精品视频| 国产精品中文| 亚洲精品中文字幕在线| aa国产精品| 亚洲啪av永久无码精品放毛片| 国产精品久线在线观看| www.色国产| 亚洲精品国产电影| 欧美理论电影| 亚洲综合日韩在线| 欧美hentaied在线观看| 欧美自拍小视频| 久久这里只精品最新地址| 久久国产一级片| 欧美一区二区三区性视频| 国产天堂在线| 国产成人综合精品| 九色精品91| 男人天堂999| 91丨porny丨在线| 在线观看国产亚洲| 亚洲精品美女久久久久| 国产高清在线a视频大全| 3d动漫啪啪精品一区二区免费| 1024精品久久久久久久久| 天天干天天玩天天操| 欧美国产成人在线| 这里只有精品国产| 在线播放日韩专区| 成人av色网站| 欧美亚洲视频一区| 国产在线精品免费| 国产盗摄一区二区三区在线| 在线播放亚洲一区| 最新av在线播放| 成人av免费看| 99热在线精品观看| 全黄一级裸体片| 在线观看三级视频欧美| 国产美女性感在线观看懂色av | 亚洲区小说区| 日本精品www| 国产亚洲va综合人人澡精品| 这里只有精品999| www国产精品com| 亚州一区二区| 日韩欧美不卡在线| 91啪亚洲精品| 国产日韩在线免费观看| 少妇高潮久久77777| 欧美视频二区欧美影视| 日韩极品视频在线观看| 99久久亚洲一区二区三区青草| 日本一区二区免费电影| 中文字幕在线观看亚洲| 免费观看亚洲天堂| 给我免费播放片在线观看| 久久综合av免费| 97精品人妻一区二区三区| 九九久久久久99精品| 免费成人蒂法| 日日噜噜噜噜久久久精品毛片| 中文字幕一区免费在线观看| 精品国产亚洲AV| 777国产偷窥盗摄精品视频| 神马影视一区二区| 黄色三级视频在线播放| 亚洲1区2区3区4区| 免费毛片在线| 亚洲一区免费网站| 亚洲一区二区毛片| 天天操天天摸天天舔| 精品伦理精品一区| 天天综合网站| 高清无码视频直接看| 国产亚洲女人久久久久毛片| 国产美女无遮挡永久免费| 91精品国产乱码久久久久久蜜臀 | 成人在线观看a| 亚洲精品中文在线影院| 色就是色亚洲色图| 91人成网站www| 亚洲女人av| 欧美日韩中文字幕在线观看| 亚洲性线免费观看视频成熟| 欧美中文高清| 污网站免费在线| 欧美色道久久88综合亚洲精品| 麻豆传媒在线观看|