偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

CPU突然飆高,系統(tǒng)反應慢怎么排查,我來教教你

系統(tǒng) 其他OS
CPU 利用率過高的線程 ID 不斷變化,說明線程創(chuàng)建過多,需要挑選幾個線程 ID,通過 jstack 去線程 dump 日志中排查。最后有可能定位的結果是程序正常,只是在 CPU 飆高的那一刻,用戶訪問量較大,導致系統(tǒng)資源不夠。

開發(fā)人員的基本能力。這不,有一位小伙伴去阿里面試,第一面就遇到了關于“CPU 飆高系統(tǒng)反應慢怎么排查”的問題?當時這位小伙伴不知從何下手。

今天,我給大家分享一下我的解決思路。

CPU 是整個電腦的核心計算資源,對于一個應用進程來說,CPU 的最小執(zhí)行單元是線程。導致 CPU 飆高的原因有以下兩個:

圖片

1.CPU 上下文切換過多

對于 CPU 來說,同一時刻下每個 CPU 核心只能運行一個線程,如果有多個線程要執(zhí)行,CPU 只能通過上下文切換的方式來執(zhí)行不同的線程。上下文切換需要做兩個事情

圖片

保存運行線程的執(zhí)行狀態(tài)

讓處于等待中的線程執(zhí)行

這兩個過程需要 CPU 執(zhí)行內(nèi)核相關指令實現(xiàn)狀態(tài)保存,如果較多的上下文切換會占據(jù)大量CPU 資源,從而使得 CPU 無法去執(zhí)行用戶進程中的指令,導致響應速度下降。在 Java 中,文件 IO、網(wǎng)絡 IO、鎖等待、線程阻塞等操作都會造成線程阻塞從而觸發(fā)上下文切換。

圖片

2.CPU 資源過度消耗

圖片

也就是在程序中創(chuàng)建了大量的線程,或者有線程一直占用CPU 資源無法被釋放,比如死循環(huán)!CPU 利用率過高之后,導致應用中的線程無法獲得 CPU 的調(diào)度,從而影響程序的執(zhí)行效率!既然是這兩個問題導致的 CPU 利用率較高,于是我們可以通過 top 命令,找到CPU 利用率較高的進程,在通過 Shift+H 找到進程中 CPU 消耗過高的線程,這里有兩種情況。

CPU 利用率過高的線程一直是同一個,說明程序中存在線程長期占用 CPU 沒有釋放的情況,這種情況直接通過 jstack 獲得線程的 Dump 日志,定位到線程日志后就可以找到問題的代碼。

CPU 利用率過高的線程 ID 不斷變化,說明線程創(chuàng)建過多,需要挑選幾個線程 ID,通過 jstack 去線程 dump 日志中排查。最后有可能定位的結果是程序正常,只是在 CPU 飆高的那一刻,用戶訪問量較大,導致系統(tǒng)資源不夠。

以上就是我對這個問題的理解!從這個問題來看,面試官主要考察實操能力,以及解決問題的思路。如果你沒有實操過,但是你知道導致 CPU 飆高這個現(xiàn)象的原因,并說出你的解決思路,通過面試是沒問題的。

責任編輯:武曉燕 來源: Tom彈架構
相關推薦

2023-12-26 11:39:50

CPU系統(tǒng)進程

2020-09-29 07:59:22

CPU系統(tǒng)性能

2024-06-28 11:54:20

2023-10-26 09:00:58

Arthas工具CPU

2024-02-21 11:06:54

ArthasCPU工具

2021-03-31 13:45:59

CPU運維命令

2020-10-12 14:18:15

CPU技巧代碼

2024-05-16 10:59:16

Vue項目前端

2022-08-26 01:46:33

注冊中心NacosDNS

2020-11-02 09:25:33

CPUJava線程

2024-03-06 11:14:13

ViteReact微前端

2021-02-26 13:35:46

JavaCPU內(nèi)存

2022-07-26 08:14:16

注冊中心ProviderConsumer

2024-05-13 10:21:43

Bug排查TCP

2019-01-23 10:11:43

Python爬蟲IP

2015-09-06 09:26:46

解決辦法開始菜單Windows 10

2020-05-29 16:57:27

磁盤陣列配置

2023-10-20 13:30:36

代碼接口

2022-04-14 07:49:03

nmon監(jiān)控Linux

2019-07-16 06:43:18

LinuxCPU占用率
點贊
收藏

51CTO技術棧公眾號