0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CPU占用率過高的常見原因

小林coding ? 來源:ByteByteGo ? 2024-10-23 09:33 ? 次閱讀

以下文章來源于ByteByteGo,作者李華

排查系統(tǒng)問題時,CPU 飆升是一個常見的問題。

下圖顯示了導(dǎo)致 100% CPU 使用率的常見原因。了解這些情況有助于診斷問題和提高系統(tǒng)效率。

01 無限循環(huán)

導(dǎo)致 CPU 占用率高的最簡單但最具破壞性的編程錯誤之一就是無限循環(huán)。

當(dāng)程序中的循環(huán)缺乏正確的退出條件或條件從未滿足時,就會出現(xiàn)這種情況,導(dǎo)致循環(huán)無休止地運行,消耗過多的處理器時間。

02 后臺進(jìn)程

通常,后臺運行的進(jìn)程(如軟件更新、系統(tǒng)維護(hù)腳本或其他自動任務(wù))會意外占用大量 CPU 資源。雖然單個進(jìn)程可能并不耗費大量資源,但累積起來就會使 CPU 不堪重負(fù)。

03 高流量

處理用戶請求的服務(wù)器和應(yīng)用程序可能會因流量過大而不堪重負(fù),尤其是在未適當(dāng)擴(kuò)展或優(yōu)化的情況下。當(dāng)系統(tǒng)努力處理傳入的請求時,這種需求激增會耗盡 CPU 資源。

04 資源密集型應(yīng)用程序

某些應(yīng)用程序,尤其是涉及視頻編輯、游戲或科學(xué)模擬的應(yīng)用程序,需要大量的計算能力。在沒有足夠系統(tǒng)資源的情況下運行這些應(yīng)用程序,可能會導(dǎo)致 CPU 占用率達(dá)到 100%,因為它們試圖執(zhí)行高要求的任務(wù)。

05 內(nèi)存不足

當(dāng)系統(tǒng)內(nèi)存不足時,就會將磁盤存儲作為虛擬內(nèi)存使用,而虛擬內(nèi)存的運行速度要慢得多。這種過度的分頁和交換會導(dǎo)致 CPU 占用率居高不下,因為處理器需要花費更多時間來管理內(nèi)存訪問,而不是高效地執(zhí)行進(jìn)程。

06 并發(fā)進(jìn)程

多個進(jìn)程同時運行會導(dǎo)致對 CPU 資源的競爭,尤其是當(dāng)其中許多進(jìn)程都是資源密集型進(jìn)程時。這會導(dǎo)致所有進(jìn)程獲得的 CPU 時間減少,當(dāng)每個進(jìn)程都試圖完成自己的任務(wù)時,CPU 時間可能會被耗盡。

07 繁忙等待

忙等待或自旋鎖等編程問題,即進(jìn)程在不釋放 CPU 的情況下反復(fù)檢查條件是否滿足,會導(dǎo)致 CPU 占用率居高不下。這種低效率的資源使用會妨礙 CPU 執(zhí)行其他任務(wù)。

08 正則表達(dá)式匹配

復(fù)雜的正則表達(dá)式,尤其是涉及大量回溯的正則表達(dá)式,計算成本可能很高。低效的正則表達(dá)式查詢會消耗大量的 CPU 時間,尤其是在輸入量較大或應(yīng)用于大量文本搜索時。

09 惡意軟件和病毒

病毒、蠕蟲或木馬等惡意軟件也會導(dǎo)致 100% 的 CPU 占用率。這些程序可能會運行后臺進(jìn)程,消耗資源用于惡意活動,如加密挖掘、傳播惡意軟件或執(zhí)行拒絕服務(wù)攻擊。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10772

    瀏覽量

    210435
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    2945

    瀏覽量

    73729
  • 程序
    +關(guān)注

    關(guān)注

    115

    文章

    3747

    瀏覽量

    80665

原文標(biāo)題:面試官:導(dǎo)致 CPU 飆升到 100% 有什么原因?

文章出處:【微信號:小林coding,微信公眾號:小林coding】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    編程之美 指揮CPU占用率

    很經(jīng)典,自己可以控制CPU占用率曲線
    發(fā)表于 05-02 20:45

    proteus仿真CPU占用率過高

    proteus中哪些結(jié)構(gòu)會導(dǎo)致仿真時CPU占用率過高,如何避免?
    發(fā)表于 09-09 23:29

    Linux的CPU和內(nèi)存占用率查看

    我們經(jīng)常需要查看CPU和內(nèi)存占用率,否則一旦存在情況很快就會有IDC(或客戶)找上門,Linux上查看資源使用情況有多種命令可以參考,CPU、內(nèi)存、IO、NETWORK等資源使用情況都可以通過某些命令查詢到,本文只說
    發(fā)表于 07-24 06:52

    基于IMX6查看Linux下的CPU和內(nèi)存的占用率

    查看 Linux 下 CPU、內(nèi)存的占用率方法1 : 如何查看 Linux 下內(nèi)存占用率 我們可以使用下面命令的組合來達(dá)到此目的。在該方法中,我們使用的是 free 和 awk 命令的組合來獲取內(nèi)存
    發(fā)表于 10-30 10:18

    STM32F407的中斷CPU占用率怎么計算?

    如題!另外,假設(shè)中斷函數(shù)內(nèi)的語句一樣,定時器的中斷和DMA的中斷CPU占用率一樣么?
    發(fā)表于 06-02 11:15

    如何讓CPU占用率達(dá)到100%?

    CPU占用率達(dá)到100%的方法
    發(fā)表于 11-06 06:52

    rtthread有每個線程的CPU占用率統(tǒng)計嗎?

    rtthread有每個線程的CPU占用率統(tǒng)計嗎,監(jiān)控每個線程的占用時間,根據(jù)這個調(diào)整線程優(yōu)先級。
    發(fā)表于 04-14 09:48

    CPU占用率100%的故障解決

      相信很多朋友都遇到過CPU占用率100%的情況,那會導(dǎo)致系統(tǒng)慢如蝸牛。半小時前,筆者正在玩游戲,電腦突然行動遲緩,打開任務(wù)管理器,發(fā)現(xiàn)CPU占用率100%,而且過多
    發(fā)表于 08-29 10:24 ?978次閱讀

    服務(wù)器CPU占用率高的定位分析

    通過性能監(jiān)控發(fā)現(xiàn)上線服務(wù)器cpu某核占用率已經(jīng)達(dá)到了100%,而且是由我們的某個核心服務(wù)導(dǎo)致的。
    發(fā)表于 03-17 16:35 ?916次閱讀

    cpu使用率過高怎么解決_cpu使用率過高是什么原因

    本文主要闡述了cpu使用率過高原因及解決方法。
    發(fā)表于 04-29 09:34 ?1582次閱讀

    虛擬機(jī):查看linux線程的CPU占用率的方法

    虛擬機(jī):查看linux線程的CPU占用率的方法
    的頭像 發(fā)表于 06-22 10:06 ?4053次閱讀
    虛擬機(jī):查看linux線程的<b class='flag-5'>CPU</b><b class='flag-5'>占用率</b>的方法

    stm32運用freertos庫函數(shù)測試各個線程任務(wù)信息和cpu占用率

    通過對工程中各個線程任務(wù)的分析,以便進(jìn)行任務(wù)代碼的優(yōu)化或者更換主處理芯片。僅為記錄,歡迎大佬指出錯誤。如有幫助,十分榮幸。我的mcu是stm32f405,frertos,標(biāo)準(zhǔn)庫函數(shù)。cpu占用率
    發(fā)表于 12-14 18:58 ?0次下載
    stm32運用freertos庫函數(shù)測試各個線程任務(wù)信息和<b class='flag-5'>cpu</b><b class='flag-5'>占用率</b>

    java中cpu占用過高如何分析

    Java中CPU占用過高是一種常見的問題,需要通過多種方法進(jìn)行分析和解決。本文將詳細(xì)介紹Java中CPU占用過高
    的頭像 發(fā)表于 12-05 11:15 ?8607次閱讀

    GPU占用率低的原因和解決方法

    GPU占用率低的原因和解決方法? 隨著計算機(jī)圖形處理技術(shù)的發(fā)展,GPU (Graphics Processing Unit,圖形處理器)已經(jīng)成為許多高性能計算任務(wù)的重要組成部分。然而,有時候我們
    的頭像 發(fā)表于 12-09 14:32 ?1w次閱讀

    服務(wù)器cpu占用率高怎么解決

    服務(wù)器CPU占用率高是一個常見的問題,它可能會導(dǎo)致服務(wù)器性能下降,甚至影響用戶體驗。 一、了解服務(wù)器CPU占用率高的
    的頭像 發(fā)表于 10-10 15:14 ?287次閱讀