32節(jié) 2020-09-25 CPU使用率(一)上

繼我們31章節(jié),我們繼續(xù)來學(xué)習(xí)新的知識:CPU使用率。
今天的內(nèi)容,希望大家學(xué)習(xí)了之后,可以學(xué)會如何查看cpu使用率,以及怎么定位cpu使用率過高的問題。
提問:常用什么指標(biāo)來描述系統(tǒng)的cpu性能?
cpu使用率最底層的數(shù)據(jù)都是從哪里獲取的?

cpu性能最直觀的指標(biāo)就是cpu使用率,而這些數(shù)據(jù)又是從/proc中獲取的。下面來學(xué)習(xí)下.

什么是cpu使用率

CPU使用率是指運(yùn)行程序占用的CPU資源。
舉例說明:
比如A進(jìn)程占用10ms,然后B進(jìn)程占用30ms,然后空閑60ms,再又是A進(jìn)程占10ms,B進(jìn)程占30ms,空閑60ms;如果在一段時(shí)間內(nèi)都是如此,那么這段時(shí)間內(nèi)的占用率為40%。
40%如何計(jì)算的呢?
計(jì)算公式:cpu使用時(shí)間/cpu占用總時(shí)間=80/200*100=40%

cpu占用時(shí)間底層數(shù)據(jù)哪里來

cpu占用時(shí)間從/proc/stat文件系統(tǒng)中獲取,如下:

image.png

image.png

到這里你應(yīng)該了解了 cat /proc/stat 輸出項(xiàng)的含義,那么cpu使用率到底是怎么計(jì)算出來的呢?

從面輸出結(jié)果可以看到:第一行的每一列數(shù)據(jù)都是cpu0+cpu1+cpu2+cpu3相加的結(jié)果。
如use%占用總cpu時(shí)間(104245)=cpu0+cpu1+cpu2+cpu3。
所以:總的cpu時(shí)間totalCPUTime=第一行所有列的數(shù)據(jù)相加

下面來看單個(gè)cpu的使用率計(jì)算。比如:以cpu0為例:

cpu0使用率計(jì)算

(1)查看cpu0數(shù)據(jù): cat /proc/stat | grep cpu0

[root@localhost ~]# cat  /proc/stat  |  grep  cpu0
cpu0 1036 11 1776 249517 1498 426 216 0 0 0

總時(shí)間1: CPU0TotalTime1=user+nice+system+idle+iowait+irq+softirq+(后面數(shù)據(jù)為0的三項(xiàng))

                  CPU0TotalTime 這個(gè)時(shí)間是系統(tǒng)啟動以來到當(dāng)前時(shí)間的總時(shí)間

占用時(shí)間1: CPU0UsedTime1=user+nice+system+idle+iowait+irq+softirq

時(shí)間過去一段時(shí)間了,再來查看cpu0的數(shù)據(jù)。

(2)查看cpu0數(shù)據(jù): cat /proc/stat | grep cpu0


[root@localhost ~]# cat  /proc/stat  |  grep  cpu0
cpu0 1036 11 1776 249517 1498 426 216 0 0 0

[root@localhost ~]# cat  /proc/stat  |  grep  cpu0
cpu0 1052 11 1866 301982 1501 486 241 0 0 0
[root@localhost ~]# ^C


總時(shí)間2: CPU0TotalTime2=user+nice+system+idle+iowait+irq+softirq+(后面數(shù)據(jù)為0的三項(xiàng))
CPU0TotalTime 這個(gè)時(shí)間是系統(tǒng)啟動以來到當(dāng)前時(shí)間的總時(shí)間

占用時(shí)間2: CPU0UsedTime2=user+nice+system+idle+iowait+irq+softirq

得到CPU0在N秒內(nèi)的單核利用率:
(CPU0UsedTime2-CPU0UsedTime1)*100%/ (CPU0TotalTime2-CPU0TotalTime1)

總結(jié):cpu使用率=(1-空閑時(shí)間)/總cpu時(shí)間。這個(gè)不需要我們計(jì)算,我們只需要知道cpu使用率是怎么計(jì)算出來的即可。

知道了cpu使用率計(jì)算,下面需要來學(xué)習(xí)一下如何查看cpu使用率?

查看cpu使用率

(1)


image.png

(2)


image.png
image.png

如何規(guī)避網(wǎng)絡(luò)瓶頸:1.需要在同一個(gè)局域網(wǎng)里,同一個(gè)網(wǎng)段(ip前三位相同)
2.最好使用千兆交換機(jī)
曾經(jīng)使用百兆交換機(jī)做性能測試,每次一跑,帶寬就跑滿了,壓力始終上不去。
如何知道帶寬跑滿了-》ping服務(wù)器,查看有沒有很大的延遲。

image.png
image.png

接下來如何分析top輸出的結(jié)果,請看33節(jié)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 通過/proc/stat計(jì)算CPU使用率介紹 linux通過/proc虛擬文件系統(tǒng),想用戶提供了系統(tǒng)內(nèi)部狀態(tài)信息,...
    崔天浩閱讀 1,282評論 0 0
  • [TOC]源自極客時(shí)間教程的學(xué)習(xí)記錄:通過前兩節(jié)對平均負(fù)載和 CPU 上下文切換的學(xué)習(xí),我相信你對 CPU 的性能...
    tracy_668閱讀 1,459評論 0 3
  • cpu 使用率 Linux 作為一個(gè)多任務(wù)操作系統(tǒng),將每個(gè) CPU 的時(shí)間劃分為很短的時(shí)間片,再通過調(diào)度器輪流分配...
    wayyyy閱讀 737評論 0 0
  • Linux 作為一個(gè)多任務(wù)操作系統(tǒng),將每個(gè) CPU 的時(shí)間劃分為很短的時(shí)間片,再通過調(diào)度器輪流分配給各個(gè)任務(wù)使用,...
    taj3991閱讀 454評論 0 0
  • Linux CPU、內(nèi)存、磁盤、使用率計(jì)算 原創(chuàng)作品,轉(zhuǎn)載請標(biāo)明出處。 命令方式查看: cpu使用率: 如果發(fā)現(xiàn)多...
    PublicBook閱讀 16,980評論 2 7

友情鏈接更多精彩內(nèi)容