CPU的平均負載和CPU使用率一樣么?

CPU的load和使用率傻傻分不清

image
image

1. 什么是Cpu的Load

image
image

查看方式:
uptime
top
cat /proc/loadavg

平均負載LOAD AVERAGE是指單位時間內(nèi)铛嘱,系統(tǒng)處于可運行狀態(tài)不可中斷狀態(tài)的平均進程數(shù)嗡午,也就是平均活躍進程數(shù)熊经,它和 CPU 使用率并沒有直接關(guān)系呕诉。(可運行分為正在運行進程和正在等待CPU的進程,狀態(tài)為R保礼;不可中斷則是它正在做某些工作不能被中斷比如等待磁盤IO等沛励,其狀態(tài)為D)责语,它是從另外一個角度體現(xiàn)CPU的使用狀態(tài)。

如何理解LOAD這個含義呢侯勉?

image

上圖1個電話亭可以理解為一個CPU核心鹦筹。從上圖的過程中可以看到load的概念,而使用率始終100%址貌。

理想的CPU load是多少

這個跟你的CPU核心數(shù)量有關(guān)铐拐,理想情況下一個核心被一個進程占用,如果你是4個核心练对,那么跑4個進程遍蟋,此時Load是4但是也不高,如果你只有2個核心螟凭,依然跑4個進程虚青,這就意味著有一半進程在某一個時刻搶不到CPU,這時候Load還是4螺男,如果是短期狀態(tài)還無所謂棒厘,如果長期是這個狀態(tài)你就要注意了。一般高于cpu數(shù)量70%的時候下隧,就需要排查負載高的問題奢人。

多核心CPU和多處理器

對于性能而言一個雙核CPU和2個單核CPU是差不多的,當(dāng)然一些細小區(qū)別是CPU的緩存淆院、進程可能會在多個CPU上切換等。除了這些對于LOAD而言支救,核心個數(shù)才是最重要的拷淘,有多少個物理處理器不重要。
對于一個4核心處理器的系統(tǒng)來說启涯,一個LOAD為3.00依然很健康贬堵,因為LOAD相對于處理器的核心數(shù)來說,100%使用率在一個單核處理器上的load是1.00逝嚎,那么在一個雙核處理器上就是2.00,在一個4核心處理器上就是4.00详恼。
所以對于有多核心CPU的系統(tǒng)來說最大LOAD是最大的核心數(shù)量补君。2CPU、每個CPU有6個物理核心昧互、算上超線程最終的邏輯CPU個數(shù)是24個挽铁。比如在Linux查看如下:

image

這里一個processor就算一個核心伟桅,雖然這里的數(shù)量是通過因特爾的超線程模擬出來的

應(yīng)該關(guān)注哪個值

image

應(yīng)該關(guān)注5分鐘或者15分鐘,因為CPU偶爾高一些比較正常叽掘,但是如果最近15分鐘都很高就需要調(diào)查了楣铁。

查看Linux系統(tǒng)物理CPU個數(shù)、核心數(shù)和邏輯CPU個數(shù)

總核數(shù) = 物理CPU個數(shù) * 每個物理CPU的核心數(shù)
總邏輯CPU數(shù) = 物理CPU個數(shù) * 每個物理CPU的核心數(shù) * 超線程數(shù)量

# 查看物理CPU個數(shù)

cat /proc/cpuinfo``| ``grep "physical id"``| ``sort``| ``uniq``| ``wc -l

image

查看每個物理CPU中的核心數(shù)

cat /proc/cpuinfo``| ``grep "cpu cores"``| ``uniq

image

查看邏輯CPU的個數(shù)

cat /proc/cpuinfo``| ``grep "processor"``| ``wc -l

image

2. 什么是CPU使用率

image

使用率這個要結(jié)合時間片來說更扁,從上圖的演變可以看出影響使用率高低的因素不是LOAD的多少盖腕,而是在分配給某個進程時間片時,這個進程是否使用了CPU的計算能力浓镜。
在第四分鐘時候溃列,分配給藍人1分鐘,但是它什么也沒干膛薛,這1分鐘內(nèi)電話是閑置的沒有被使用听隐,所以這一分鐘內(nèi)的電話使用率就是0%。但是LOAD是3哄啄。
當(dāng)然這里就存在一個統(tǒng)計周期的問題咨跌,上圖我們的統(tǒng)計周期是1分鐘虑润,而分配給每個人的最小時間單位也是1分鐘拳喻。從計算機角度來說冗澈,單核心CPU彻采,假設(shè)1秒鐘分為100個時間片肛响,如果2個任務(wù)特笋,第一個任務(wù)用了5個時間片執(zhí)行完成猎物,另外一個任務(wù)用了15個時間片執(zhí)行完成蔫磨,所以如果統(tǒng)計周期是1秒堤如,那么這1秒內(nèi)的CPU使用率就是20%嫉嘀。CPU利用率高不一定負載高剪侮。利用率是一段時間內(nèi)CPU被占用的情況瓣俯。
CPU負載高利用率低:說明等待執(zhí)行的任務(wù)很多彩匕,但是通常任務(wù)多CPU使用率也會比較高驼仪,如果低就說明CPU根本沒工作绪爸,哪些很多的任務(wù)處于等待狀態(tài),可能進程僵死了座掘∑妓洌可以通過命令ps –axjf查看是否存在D狀態(tài)的進程杉编,該狀態(tài)時不可中斷的睡眠狀態(tài)王财。這種狀態(tài)無法被KILL。而有時候你通過top命令也看不出來偿衰,只能顯示LOAD高缤言,但是沒有哪個進程的CPU使用率明顯高纱意,你可以通過ps –ux來查看。
CPU利用率高負載低:說明任務(wù)少虏辫,但是任務(wù)執(zhí)行時間長羹唠,有可能是程序本身有問題佩微,如果沒有問題那么計算完成后則利用率會下降喊衫。

3. CPU多核心和多線程

CPU的組成是由控制器(Control Unit 負責(zé)調(diào)度)和運算器(Processing Unit 運算處理單元)組成。
單核CPU:一個分配工作的寝杖、一個具體干活的瑟幕,來了一個任務(wù)那么先有控制器進行進行調(diào)度辣往,如果此時運算器空閑那么就直接由運算器進行處理,如果此時運算器正在處理其他任務(wù)那么這個后來的任務(wù)就需要等待许起。
多核CPU:就是每個核心都有一組控制器和運算器园细。比如I5是4核心猛频,簡單來說他可以并行處理四個任務(wù)。假設(shè)這時候同時來了8個任務(wù)烈和,那么分配到四個核心上相當(dāng)于4個隊列招刹,此時每個隊列只有2個任務(wù)。相比單核心CPU執(zhí)行效率會大大提高妇拯。

什么是超線程

超線程(HT):超線程和多線程不同越锈,多線程是程序方面的屬于軟的代碼級別的,超線程是硬件架構(gòu)方面的丹弱,通過控制器來模擬邏輯核心躲胳。
超線程有什么作用蝠咆?其實也是為了提高效率更高的榨干控制器的運行能力。為什么這么說呢再芋,因為任務(wù)過來之后很多時候不是馬上就能由運算器進行計算的,它還需要其他資源比如網(wǎng)絡(luò)傳輸過來的數(shù)據(jù)或者是硬盤中的數(shù)據(jù)司训,那么此時運算器就閑著壳猜,為了更大限度利用運算器统扳,我可以設(shè)置2個控制器對應(yīng)一個運算器,其中一個控制器處理的程序需要等待數(shù)據(jù)的時候朱嘴,如果另外一個控制器處理的程序不需要等待或者數(shù)據(jù)已經(jīng)準備好,那么就可以立即發(fā)送給運算器進行計算帚湘。
下圖藍色和橙色都是CPU的運算器在工作大诸,白色表示運算器空閑焙贷。A圖是單核心辙芍、B圖是雙核心故硅、C圖是單核心啟用超線程,可以看到C圖的CPU利用率最大徘层。

image
image

多線程有什么缺點

爭搶:核心上運算器只有一個,但是控制器2個跷敬,如果來的一個任務(wù)那么這兩個控制器就需要協(xié)調(diào)一下誰來處理,所以這個會有一定損耗池凄。這就相當(dāng)于線程池中的驚群概念肿仑。
發(fā)生擁擠:物理核心太多如果開啟HT則邏輯核心增加一倍,如果這時候來了幾百個任務(wù)伟端,如何分配這些任務(wù)到哪些核心上就是個問題责蝠,雖然這是由操作系統(tǒng)來做的調(diào)度但是也會有額外損耗齿拂,相反你只有一個我就根本不需要考慮分配的問題署海。

4. 一次問題排查

image

查看隊列長度镀梭,r表示運行和等待CPU時間片的進程數(shù)量丰辣;b表示等待資源的進程數(shù)量比如IO、或者內(nèi)存交互等琐凭。

image
image

查看進程中哪個線程使用率高

image

根據(jù)線程來查看具體代碼愁憔。
你也可以直接殺死這個進程吨掌。我這里直接殺死膜宋,然后LOAD就下降了。

image
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末圆兵,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子萨咕,更是在濱河造成了極大的恐慌聪建,老刑警劉巖金麸,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異桨醋,居然都是意外死亡偎蘸,警方通過查閱死者的電腦和手機迷雪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來慧邮,“玉大人误澳,你說我怎么就攤上這事忆谓〕” “怎么了琢唾?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長丘损。 經(jīng)常有香客問我衔蹲,道長舆驶,這世上最難降的妖魔是什么沙廉? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任官疲,我火速辦了婚禮途凫,結(jié)果婚禮上维费,老公的妹妹穿的比我還像新娘犀盟。我一直安慰自己,他們只是感情好迅耘,可當(dāng)我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布纽哥。 她就那樣靜靜地躺著,像睡著了一般晓避。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上彰触,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天,我揣著相機與錄音尔许,去河邊找鬼味廊。 笑死,一個胖子當(dāng)著我的面吹牛辉巡,可吹牛的內(nèi)容都是我干的郊楣。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼放椰!你這毒婦竟也來了砾医?” 一聲冷哼從身側(cè)響起压恒,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤错邦,失蹤者是張志新(化名)和其女友劉穎探赫,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體撬呢,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡伦吠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了魂拦。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片毛仪。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡荷愕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蝶桶,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布疯搅,位于F島的核電站礁蔗,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽轧苫。三九已至岔乔,卻和暖如春茁影,著一層夾襖步出監(jiān)牢的瞬間浩螺,已是汗流浹背厨幻。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工盛末, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留助泽,地道東北人。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓辟躏,卻偏偏與公主長得像末秃,于是被迫代替她去往敵國和親铃将。 傳聞我的和親對象是個殘疾皇子龄毡,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,851評論 2 361