一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

CPU負載與CPU使用率可不是一回事

 漢無為 2022-06-07 發(fā)布于湖北
圖片

原文:https://www./linux/get-cpu-usage
翻譯:IT運維技術(shù)圈

1、簡介

存儲、內(nèi)存和 CPU(中央處理器)等系統(tǒng)資源不足會極大地影響應(yīng)用程序的性能。因此,監(jiān)控這些組件至關(guān)重要。

與磁盤和內(nèi)存不同,監(jiān)控 Linux 系統(tǒng)上的 CPU 使用率并不那么簡單。在本文中,我們將了解如何解釋 CPU 指標并以人類可讀的格式顯示它們。

2. CPU 負載與 CPU 使用率

盡管 CPU 負載和 CPU 使用率聽起來很相似,但它們是不可互換的。CPU 負載定義為在單個時間點使用或等待使用一個內(nèi)核的進程數(shù)。

假設(shè)我們有一個單核系統(tǒng),我們的 CPU 平均負載始終低于 0.6。這表明每個需要使用 CPU 的進程都可以立即使用它,而無需等待。如果 CPU 平均負載大于 1,則表示有進程需要使用 CPU,但由于 CPU 不可用,目前無法使用。

但是,多處理器系統(tǒng)中高于 1 的平均負載不會成為問題,因為有更多內(nèi)核可用。

uptime命令為我們提供了以 1、5 和 15 分鐘為間隔的平均負載視圖:

[root@localhost ~]uptime
 12:40:05 up  2:29,  1 user,  load average: 0.37, 0.08, 0.03

如果不知道系統(tǒng)的核心數(shù),就無法解釋平均負載:

[root@localhost ~]# cat /proc/cpuinfo |grep core
core id        : 0
cpu cores    : 1

另一方面,CPU 使用率是 CPU 處理非空閑任務(wù)所花費的時間百分比。CPU 使用率只能在指定的時間間隔內(nèi)測量。我們可以通過將空閑時間的百分比從 100 中減去來確定 CPU 使用率。

3.計算CPU使用率

3.1 使用vmstat獲取 CPU 使用率

vmstat命令近乎實時地顯示 CPU 活動:

[root@localhost ~]# vmstat 3 4
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 4  0      0 1347080   6120 941464    0    0    68    11   72  137  1  2 97  0  0
 1  0      0 1347080   6120 941464    0    0     0     0   84  157  1  2 97  0  0
 1  0      0 1347080   6120 941464    0    0     0     0   59  107  1  1 98  0  0
 1  0      0 1347080   6120 941464    0    0     0     1   59  104  1  1 98  0  0

CPU 下的列提供了處理器時間花費在哪里的概覽:

us –運行非內(nèi)核代碼所花費的時間
sy -運行內(nèi)核代碼所花費的時間
id –空閑時間
wa –等待 I/O 所花費的時間
st -從虛擬機中竊取時間
id列是我們感興趣的。延遲一秒,我們使用 vmstat 計算CPU使用率:

[root@localhost ~]# echo 'CPU Usage: '$[100-$(vmstat 1 2|tail -1|awk '{print $15}')]'%'
CPU Usage: 2%

沒有提供任何參數(shù)的vmstat命令將給出自引導以來的 CPU 時間。這不會提供準確的 CPU 使用百分比。因此,參數(shù)只能是 1 和 2,我們采用一秒鐘后計算的指標:

vmstat 1 2
3.2. 使用/proc/stat獲取 CPU 使用率

CPU 活動也可以從/proc/stat文件中提取。該文件包含自啟動以來有關(guān)系統(tǒng)的各種指標:

[root@localhost ~]# cat /proc/stat 
cpu  3020 28 1863 22404 35 432 47 0 0 0
cpu0 3020 28 1863 22404 35 432 47 0 0 0
intr 96468 28 100 0 0 0 0 0 0 1 0 0 0 1263 0 0 0 3696 0 153 928 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 0 41 14600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 343 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 340950
btime 1628404433
processes 3276
procs_running 2
procs_blocked 0
softirq 112867 1 16857 56 269 510 0 261 0 0 94913

第一行,  'cpu'  是系統(tǒng)所有核心指標的聚合。在具有 4 個內(nèi)核的系統(tǒng)上,將有 4條cpu線——cpu0、cpu1、cpu2和cpu3。' cpu ' 行中的列表示處理不同任務(wù)所花費的時間:

user – 在用戶模式下花費的時間
nice – 在用戶模式下處理 nice 進程所花費的時間
system – 執(zhí)行內(nèi)核代碼所花費的時間
idle - 空閑時間
iowait – 等待 I/O 所花費的時間
irq - 服務(wù)中斷所花費的時間
softirq – 服務(wù)軟件中斷所花費的時間
steal —從虛擬機中竊取的時間
guest - 為來賓操作系統(tǒng)運行虛擬 CPU 所花費的時間
guest_nice – 為“不錯的”客戶操作系統(tǒng)運行虛擬 CPU 所花費的時間
我們將使用這些指標來計算平均空閑百分比。隨后,我們將使用計算值來計算 CPU 使用率。需要注意的是,較舊的 Linux 發(fā)行版不計算竊取、來賓或來賓_nice指標。如果我們使用的是舊系統(tǒng),我們會在計算中忽略這些指標:

平均空閑時間 (%) = (idle * 100) / (user + nice + system + idle + iowait + irq + softirq +steal + guest + guest_nice)

cat /proc/stat |grep cpu |tail -1|awk '{print ($5*100)/($2+$3+$4+$5+$6+$7+$8+$9+$10)}'|awk '{print 'CPU Usage: ' 100-$1}'
CPU Usage: 2.4219

由于我們正在開發(fā)單核系統(tǒng),因此“cpu”行將與“cpu1 ”相同。因此,tail -1 的使用是 只檢索其中一行。然而,我們會在多處理器系統(tǒng)上使用“ cpu ”行,因為它是所有內(nèi)核上的指標的集合。

3.3. 使用top獲取 CPU 使用率

通常,top命令通常用于顯示系統(tǒng)上的活動進程以及這些進程消耗了多少資源。不過,我們可以使用這個命令來測量 CPU 的狀態(tài):

[root@localhost ~]# top

top - 07:08:31 up  2:41,  1 user,  load average: 0.000.000.00
Tasks: 322 total,   2 running, 320 sleeping,   0 stopped,   0 zombie
%Cpu(s): 10.0 us, 15.0 sy,  0.0 ni, 97.8 id,  0.0 wa,  5.0 hi,  0.0 si,  0.0 st
MiB Mem :   3709.4 total,   1483.1 free,   1402.0 used,    824.4 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   2053.4 avail Mem 

此外,需要注意的是,top 命令顯示了單個內(nèi)核的 CPU 百分比。在多處理器系統(tǒng)中,CPU 百分比可能超過 100%。例如,如果 4 個核心為 75%,top命令將顯示 CPU 為 300%。

我們需要獲取空閑時間的值,以便我們可以從 100 中減去它來獲得使用情況:

[root@localhost ~]# top -bn2 | grep '%Cpu' | tail -1 | grep -P '(....|...) id,'|awk '{print 'CPU Usage: ' 100-$8 '%'}'
CPU Usage: 2.2%

-n選項是top命令在結(jié)束前應(yīng)該使用的迭代次數(shù)。我們避免使用第一個循環(huán),因為我們檢索的指標將是自啟動以來的值。因此,我們進行了第二次迭代。

或者,在多處理器系統(tǒng)中,我們必須將給定的“ id”值除以內(nèi)核數(shù),然后從 100 中減去該值。例如,如果我們在四核系統(tǒng)上運行,并且“ id ”值為 304%,我們將 CPU 使用率計算為:

CPU 使用率 % = 100 – (304/4)
[root@localhost ~]# top -bn2 | grep '%Cpu' | tail -1 | grep -P '(....|...) id,'|awk '{print 'CPU Usage: ' 100-($8/4) '%'}'

4.結(jié)論

在本文中,我們討論了 CPU 使用率和 CPU 負載之間的區(qū)別。許多人交替使用這兩個概念,這是不正確的。之后,我們深入研究了用于檢索 CPU 利用率指標的各種方法。



    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    成人精品一级特黄大片| 欧美av人人妻av人人爽蜜桃| 亚洲中文字幕免费人妻| 国产美女精品午夜福利视频| 国产剧情欧美日韩中文在线| 五月天丁香亚洲综合网| 国产内射一级一片内射高清| 日本深夜福利在线播放| 日本人妻中出在线观看| 国产精品国产亚洲区久久| 国产欧美日韩综合精品二区| 国产av一二三区在线观看| 成人欧美一区二区三区视频| 日本精品理论在线观看| 久久精品国产亚洲熟女| 97人妻精品一区二区三区男同 | 国产欧美日韩在线一区二区| 日本少妇中文字幕不卡视频| 久久精品国产亚洲av麻豆| 最新国产欧美精品91| 国产一区二区久久综合| 黄色国产自拍在线观看| 白丝美女被插入视频在线观看| 小草少妇视频免费看视频| 欧美日韩综合在线精品| 久久精品久久久精品久久| 成人综合网视频在线观看| 精品人妻一区二区三区免费| 欧美日韩国产精品第五页| 欧美三级精品在线观看| 亚洲视频一级二级三级| 熟女白浆精品一区二区| 国产欧美亚洲精品自拍| 亚洲天堂男人在线观看| 伊人久久青草地综合婷婷| 日本人妻的诱惑在线观看| 国产精品午夜性色视频| 69久久精品亚洲一区二区| 日韩精品一区二区一牛| 老鸭窝精彩从这里蔓延| 丰满少妇高潮一区二区|