14.9 Linux如何查看CPU運(yùn)行狀態(tài)?

      網(wǎng)友投稿 1739 2025-03-31

      CPU 是影響 linux 性能的主要因素之一,本節(jié)將介紹幾個(gè)可以用來(lái)查看 CPU 性能的命令。


      linux CPU 性能分析:vmstat 命令

      vmstat 命令可以顯示關(guān)于系統(tǒng)各種資源之間相關(guān)性能的簡(jiǎn)要信息,在 《Linux vmstat 命令》一節(jié)中,我們已經(jīng)對(duì)此命令的基本格式和用法做了詳細(xì)的介紹,因此不再贅述,這里主要用它來(lái)看 CPU 的一個(gè)負(fù)載情況。

      下面是 vmstat 命令在當(dāng)前測(cè)試系統(tǒng)中的輸出結(jié)果:

      [root@localhost ~]# vmstat 2 3 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 8 247512 39660 394168 0 0 31 8 86 269 0 1 98 1 0 0 0 8 247480 39660 394172 0 0 0 0 96 147 4 0 96 0 0 0 0 8 247484 39660 394172 0 0 0 66 95 141 2 2 96 0 0

      通過(guò)分析 vmstat 命令的執(zhí)行結(jié)果,可以獲得一些與當(dāng)前 Linux 運(yùn)行性能相關(guān)的信息。比如說(shuō):

      r 列表示運(yùn)行和等待 CPU 時(shí)間片的進(jìn)程數(shù),如果這個(gè)值長(zhǎng)期大于系統(tǒng) CPU 的個(gè)數(shù),就說(shuō)明 CPU 不足,需要增加 CPU。

      swpd 列表示切換到內(nèi)存交換區(qū)的內(nèi)存數(shù)量(以 kB 為單位)。如果 swpd 的值不為 0,或者比較大,而且 si、so 的值長(zhǎng)期為 0,那么這種情況下一般不用擔(dān)心,不用影響系統(tǒng)性能。

      cache 列表示緩存的內(nèi)存數(shù)量,一般作為文件系統(tǒng)緩存,頻繁訪問(wèn)的文件都會(huì)被緩存。如果緩存值較大,就說(shuō)明緩存的文件數(shù)較多,如果此時(shí) I/O 中 bi 比較小,就表明文件系統(tǒng)效率比較好。

      一般情況下,si(數(shù)據(jù)由硬盤(pán)調(diào)入內(nèi)存)、so(數(shù)據(jù)由內(nèi)存調(diào)入硬盤(pán)) 的值都為 0,如果 si、so 的值長(zhǎng)期不為 0,則表示系統(tǒng)內(nèi)存不足,需要增加系統(tǒng)內(nèi)存。

      如果 bi+bo 的參考值為 1000 甚至超過(guò) 1000,而且 wa 值較大,則表示系統(tǒng)磁盤(pán) I/O 有問(wèn)題,應(yīng)該考慮提高磁盤(pán)的讀寫(xiě)性能。

      輸出結(jié)果中,CPU 項(xiàng)顯示了 CPU 的使用狀態(tài),其中當(dāng) us 列的值較高時(shí),說(shuō)明用戶進(jìn)程消耗的 CPU 時(shí)間多,如果其長(zhǎng)期大于 50%,就需要考慮優(yōu)化程序或算法;sy 列的值較高時(shí),說(shuō)明內(nèi)核消耗的 CPU 資源較多。通常情況下,us+sy 的參考值為 80%,如果其值大于 80%,則表明可能存在 CPU 資源不足的情況。

      總的來(lái)說(shuō),vmstat 命令的輸出結(jié)果中,我們應(yīng)該重點(diǎn)注意 procs 項(xiàng)中 r 列的值,以及 CPU 項(xiàng)中 us 列、sy 列和 id 列的值。

      Linux CPU 性能分析:sar 命令

      除了 vmstat 命令,sar 命令也可以用來(lái)檢查 CPU 性能,它可以對(duì)系統(tǒng)的每個(gè)方面進(jìn)行單獨(dú)的統(tǒng)計(jì)。

      注意,雖然使用 sar 命令會(huì)增加系統(tǒng)開(kāi)銷,不過(guò)這些開(kāi)銷是可以評(píng)估的,不會(huì)對(duì)系統(tǒng)性能的統(tǒng)計(jì)結(jié)果產(chǎn)生很大影響。和 vmstat 命令一樣,sar 命令的基本格式和用法已經(jīng)在 《Linux sar 命令》一節(jié)中做了詳細(xì)的介紹,接下來(lái)直接學(xué)習(xí)如何使用 sar 命令查看 CPU 性能。

      下面是 sar 命令對(duì)當(dāng)前測(cè)試系統(tǒng)的 CPU 統(tǒng)計(jì)輸出結(jié)果:

      [root@localhost ~]# sar -u 3 5 Linux 2.6.32-431.el6.x86_64 (localhost) 10/28/2019 _x86_64_ (8 CPU) 04:02:46 AM CPU %user %nice %system %iowait %steal %idle 04:02:49 AM all 1.69 0.00 2.03 0.00 0.00 96.27 04:02:52 AM all 1.68 0.00 0.67 0.34 0.00 97.31 04:02:55 AM all 2.36 0.00 1.69 0.00 0.00 95.95 04:02:58 AM all 0.00 0.00 1.68 0.00 0.00 98.32 04:03:01 AM all 0.33 0.00 0.67 0.00 0.00 99.00 Average: all 1.21 0.00 1.35 0.07 0.00 97.37

      此輸出結(jié)果統(tǒng)計(jì)的是系統(tǒng)中包含的 8 顆 CPU 的整體運(yùn)行狀況,每項(xiàng)的輸出都非常直觀,其中最后一行(Average)是匯總行,是對(duì)上面統(tǒng)計(jì)信息的一個(gè)平均值。

      需要指出的是,sar 輸出結(jié)果中第一行包含了 sar 命令本身的統(tǒng)計(jì)消耗,因此 %user 列的值會(huì)偏高一點(diǎn),但這并不會(huì)對(duì)統(tǒng)計(jì)結(jié)果產(chǎn)生很大影響。

      另外,在一個(gè)多 CPU 的系統(tǒng)中,如果程序使用了單線程,就會(huì)出現(xiàn)“CPU 整體利用率不高,但系統(tǒng)應(yīng)用響應(yīng)慢”的現(xiàn)象,造成此現(xiàn)象的原因在于,單線程只使用一個(gè) CPU,該 CPU 占用率為 100%,無(wú)法處理其他請(qǐng)求,但除此之外的其他 CPU 卻處于閑置狀態(tài),進(jìn)而整體 CPU 使用率并不高。

      針對(duì)這個(gè)問(wèn)題,可以使用 sar 命令單獨(dú)查看系統(tǒng)中每個(gè) CPU 的運(yùn)行狀態(tài),例如:

      [root@localhost ~]# sar -P 0 3 5 Linux 2.6.32-431.el6.x86_64 (localhost) 10/28/2019 _x86_64_ (8 CPU) 04:44:57 AM CPU %user %nice %system %iowait %steal %idle 04:45:00 AM 0 8.93 0.00 1.37 0.00 0.00 89.69 04:45:03 AM 0 6.83 0.00 1.02 0.00 0.00 92.15 04:45:06 AM 0 0.67 0.00 0.33 0.33 0.00 98.66 04:45:09 AM 0 0.67 0.00 0.33 0.00 0.00 99.00 04:45:12 AM 0 2.38 0.00 0.34 0.00 0.00 97.28 Average: 0 3.86 0.00 0.68 0.07 0.00 95.39

      14.9 Linux如何查看CPU運(yùn)行狀態(tài)?

      注意,sar 命令對(duì)系統(tǒng)中 CPU 的計(jì)數(shù)是從數(shù)字 0 開(kāi)始的,因此上面執(zhí)行的命令表示對(duì)系統(tǒng)中第一顆 CPU 的運(yùn)行狀態(tài)進(jìn)行統(tǒng)計(jì)。如果想單獨(dú)統(tǒng)計(jì)系統(tǒng)中第 5 顆 CPU 的運(yùn)行狀態(tài),可以執(zhí)行 sar -P 4 3 5 命令。

      Linux CPU 性能分析:iostat 命令

      iostat 命令主要用于統(tǒng)計(jì)磁盤(pán) I/O 狀態(tài),但也能用來(lái)查看 CPU 的使用情況,只不過(guò)使用此命令僅能顯示系統(tǒng)所有 CPU 的平均狀態(tài),無(wú)法向 sar 命令那樣做具體分析。

      使用 iostat 命令查看 CPU 運(yùn)行狀態(tài),需要使用該命令提供的 -c 選項(xiàng),該選項(xiàng)的作用是僅顯示系統(tǒng) CPU 的運(yùn)行情況。例如:

      [root@localhost ~]# iostat -c Linux 2.6.32-431.el6.x86_64 (localhost) 10/28/2019 _x86_64_ (8 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.07 0.00 0.12 0.09 0.00 99.71

      可以看到,此輸出結(jié)果中包含的項(xiàng)和 sar 命令的輸出項(xiàng)完全相同。

      有關(guān) iostat 命令的基本用法,由于不是本節(jié)重點(diǎn),因?yàn)椴辉僭敿?xì)介紹。

      Linux CPU 性能分析:uptime 命令

      uptime 命令是監(jiān)控系統(tǒng)性能最常用的一個(gè)命令,主要用來(lái)統(tǒng)計(jì)系統(tǒng)當(dāng)前的運(yùn)行狀況。例如:

      [root@localhost ~]# uptime 05:38:26 up 1:47, 2 users, load average: 0.12, 0.08, 0.08

      該命令的輸出結(jié)果中,各個(gè)數(shù)據(jù)所代表的含義依次是:系統(tǒng)當(dāng)前時(shí)間、系統(tǒng)運(yùn)行時(shí)長(zhǎng)、當(dāng)前登陸系統(tǒng)的用戶數(shù)量、系統(tǒng)分別在 1 分鐘、5 分鐘和 15 分鐘內(nèi)的平均負(fù)載。

      這里需要注意的是,load average 這 3 個(gè)輸出值一般不能大于系統(tǒng) CPU 的個(gè)數(shù)。例如,本測(cè)試系統(tǒng)有 8 個(gè) CPU,如果 load average 中這 3 個(gè)值長(zhǎng)期大于 8,就說(shuō)明 CPU 很繁忙,負(fù)載很高,系統(tǒng)性能可能會(huì)受到影響;如果偶爾大于 8 則不用擔(dān)心,系統(tǒng)性能一般不會(huì)受到影響;如果這 3 個(gè)值小于 CPU 的個(gè)數(shù)(如本例所示),則表示 CPU 是非常空閑的。

      總的來(lái)說(shuō),本節(jié)介紹了 4 個(gè)可查看 CPU 性能的命令,但這些命令也僅能查看 CPU 是否繁忙、負(fù)載是否過(guò)大,無(wú)法知道造成這種現(xiàn)象的根本原因。因此,在明確判斷出系統(tǒng) CPU 出現(xiàn)問(wèn)題之后,還要結(jié)合 top、ps 等命令,進(jìn)一步檢查出是哪些進(jìn)程造成的。

      另外要知道的是,引發(fā) CPU 資源緊張的原因有多個(gè),可能是應(yīng)用程序不合理造成的,也可能是硬件資源匱乏引起的。因此,要學(xué)會(huì)具體問(wèn)題具體分析,或者優(yōu)化應(yīng)用程序,或者增加系統(tǒng) CPU 資源。

      Linux 任務(wù)調(diào)度

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:從拉鋸效應(yīng)看團(tuán)隊(duì)協(xié)作?簡(jiǎn)單7招,教你打造“地表最強(qiáng)團(tuán)隊(duì)”! (附團(tuán)隊(duì)管理工具&模版)
      下一篇:如何將兩個(gè)表格內(nèi)容合并(如何將兩個(gè)表格內(nèi)容合并成一個(gè)表格)
      相關(guān)文章
      国产日韩亚洲大尺度高清| 2022年亚洲午夜一区二区福利 | 国产亚洲国产bv网站在线| 久久亚洲国产精品123区| 久久国产亚洲高清观看| 国产亚洲精品资源在线26u| 亚洲国产精品一区二区三区久久 | 亚洲视频无码高清在线| 亚洲1区1区3区4区产品乱码芒果| 亚洲精品视频免费看| 亚洲理论在线观看| 亚洲国产高清美女在线观看| 亚洲国产精品成人综合色在线婷婷 | 亚洲一卡2卡三卡4卡无卡下载 | 亚洲真人无码永久在线| 亚洲精品无码久久久久去q| 亚洲精品乱码久久久久久按摩 | 亚洲偷自拍另类图片二区| 亚洲精品无码你懂的| 老牛精品亚洲成av人片| 亚洲?V无码成人精品区日韩| 亚洲AV人人澡人人爽人人夜夜| 久久久综合亚洲色一区二区三区| 亚洲国产成人久久精品影视| 精品亚洲麻豆1区2区3区| 亚洲成人福利网站| 亚洲依依成人亚洲社区| 亚洲AV色欲色欲WWW| 亚洲福利中文字幕在线网址| 日本亚洲国产一区二区三区| 亚洲国产另类久久久精品黑人| 亚洲va久久久噜噜噜久久狠狠 | 亚洲一区二区三区夜色| 亚洲日本在线播放| 亚洲 日韩 色 图网站| 国产精品国产亚洲区艳妇糸列短篇| 午夜亚洲乱码伦小说区69堂| 国产亚洲精午夜久久久久久| 亚洲产国偷V产偷V自拍色戒| 亚洲综合区图片小说区| 国产精品亚洲片在线va|