在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            博客專欄

            EEPW首頁 > 博客 > Linux CPU使用率含義及原理

            Linux CPU使用率含義及原理

            發(fā)布人:電子禪石 時間:2022-02-08 來源:工程師 發(fā)布文章

            Linux CPU使用率含義及原理

            相關(guān)概念

            在Linux/Unix下,CPU利用率分為用戶態(tài)、系統(tǒng)態(tài)和空閑態(tài),分別表示CPU處于用戶態(tài)執(zhí)的時間,系統(tǒng)內(nèi)核執(zhí)行的時間,和空閑系統(tǒng)進(jìn)程執(zhí)行的時間。

            下面是幾個與CPU占用率相關(guān)的概念。

            CPU利用率:CPU的使用情況。


            用戶時間(User time) :表示CPU執(zhí)行用戶進(jìn)程的時間,包括nices時間。通常期望用戶空間CPU越高越好。


            系統(tǒng)時間(System time) :表示CPU在內(nèi)核運(yùn)行時間,包括IRQ和softirq時間。系統(tǒng)CPU占用率高,表明系統(tǒng)某部分存在瓶頸。通常值越低越好。


            等待時間(Waiting time) :CPU在等待I/O操作完成所花費(fèi)的時間。系統(tǒng)不應(yīng)該花費(fèi)大量時間來等待I/O操作,否則就說明I/O存在瓶頸。


            空閑時間(Idle time) :系統(tǒng)處于空閑期,等待進(jìn)程運(yùn)行。


            Nice時間(Nice time) :系統(tǒng)調(diào)整進(jìn)程優(yōu)先級所花費(fèi)的時間。


            硬中斷處理時間(Hard Irq time) :系統(tǒng)處理硬中斷所花費(fèi)的時間。
            軟中斷處理時間(SoftIrq time) :系統(tǒng)處理軟中斷中斷所花費(fèi)的時間。


            丟失時間(Steal time) :被強(qiáng)制等待(involuntary wait)虛擬CPU的時間,此時hypervisor在為另一個虛擬處理器服務(wù)。

             

            top命令看到的CPU占用率信息及各項值含義。

            Cpu(s): 0.2%us, 0.2%sy, 0.0%ni, 99.2%id, 0.5%wa, 0.0%hi, 0.0%si, 0.0%st

            us: User time,用戶態(tài)使用的cpu時間比。CPU一共花了多少比例的時間運(yùn)行在用戶態(tài)空間或者說是用戶進(jìn)程(running user space processes)。典型的用戶態(tài)空間程序有:Shell、數(shù)據(jù)庫、web服務(wù)器。
            sy: System time,系統(tǒng)態(tài)使用的cpu時間比。System的含義與User相似。System表示:CPU花了多少比例的時間在內(nèi)核空間運(yùn)行。分配內(nèi)存、IO操作、創(chuàng)建子進(jìn)程……都是內(nèi)核操作。這也表明,當(dāng)IO操作頻繁時,System參數(shù)會很高。
            ni: Nice time,用做nice加權(quán)的進(jìn)程分配的用戶態(tài)cpu時間比。用戶空間進(jìn)程的CPU的調(diào)度優(yōu)先級,范圍為[-20,19]。每個linux進(jìn)程都有個優(yōu)先級,優(yōu)先級高的進(jìn)程有優(yōu)先執(zhí)行的權(quán)利,這個叫做pri。進(jìn)程除了優(yōu)先級外,還有個優(yōu)先級的修正值。即比如你原先的優(yōu)先級是20,然后修正值為-2,那么你最后的進(jìn)程優(yōu)先級為18。這個修正值就叫做進(jìn)程的nice值。
            id: Idle time,空閑的cpu時間比。一般而言,idel + user + nice 約等于100%。
            wa: Waiting time,cpu等待磁盤寫入完成時間。在計算機(jī)中,讀寫磁盤的操作遠(yuǎn)比CPU運(yùn)行的速度要慢,CPU負(fù)載處理數(shù)據(jù),而數(shù)據(jù)一般在磁盤上需要讀到內(nèi)存中才能處理。當(dāng)CPU發(fā)起讀寫操作后,需要等著磁盤驅(qū)動器將數(shù)據(jù)讀入內(nèi)存,從而導(dǎo)致CPU 在等待的這一段時間內(nèi)無事可做。CPU處于這種等待狀態(tài)的時間由Wait參數(shù)來衡量。所以如果一臺機(jī)器看到wa特別高,那么一般說明是磁盤IO出現(xiàn)問題。
            hi: Hard Irq time,硬中斷消耗時間
            si: SoftIrq time,軟中斷消耗時間


            如果程序都沒什么問題,那么是沒有hi和si的,但是實際上有個硬中斷和軟中斷的概念。比如硬中斷,cpu在執(zhí)行程序的時候,突然外設(shè)硬件(比如硬盤出現(xiàn)問題了)機(jī)器需要立刻通知cpu進(jìn)行現(xiàn)場保存工作。這個時候會cpu會出現(xiàn)上下文切換。就是cpu會有一部分時間會被硬中斷占用了,這個時間就是hi。相類似,si是軟中斷的cpu占用時間,軟中斷是由軟件的指令方式觸發(fā)的。
            st: Steal time,虛擬機(jī)偷取時間。對虛擬機(jī)來說的,一臺物理是可以虛擬化出幾臺虛擬機(jī)的。在其中一臺虛擬機(jī)上用top查看發(fā)現(xiàn)st不為0,就說明本來有這么多個cpu時間是安排給這個虛擬機(jī)的,但是由于某種虛擬技術(shù),把這個cpu時間分配給了其他的虛擬機(jī)了。這就叫做偷取。

            CPU占用率計算:

            Linux CPU占用率計算,都是根據(jù)/proc/stat文件內(nèi)容計算而來。

            # more /proc/statcpu 23977676 8265 27737139 5387873754 2095720 404 650273 0 0
            cpu0 12075284 4247 13885851 2693786340 1054213 7 312015 0 0
            cpu1 11902391 4018 13851287 2694087414 1041507 396 338257 0 0
            intr 7878366837 118 6 0 0 0 0 0 0 0 0 0 31 104 0 0 69 0 0 0 0 0 0 0 0 0 24 0 29360958 0 23446119 0 798059818 13974 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
            0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
            0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
            0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
            0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
            0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 51508933575btime 1501052873processes 17604072procs_running 1procs_blocked 0
            softirq 6714836597 0 2060074967 76941 1854616421 18 0 2 584892288 14211110 2200964850

            CPU信息,cpu為總的信息,cpu0 ... cpun為各個具體CPU信息
            cpu 23977676 8265 27737139 5387873754 2095720 404 650273 0 0
            共有9個值(單位:ticks),分別為:
            ticks就是系統(tǒng)時鐘中斷的時間間隔,該值與內(nèi)核中HZ值有關(guān),即ticks = 1/HZ。
            HZ的值,就是每秒的時鐘中斷數(shù)量??梢杂^察/proc/interrupts中時鐘中斷值變化,來計算HZ的值。當(dāng)HZ的值為1000時,ticks的單位即為1/1000秒,即1ms。
            User time:23977676 Nice time:8265 System time:27737139 Idle time:5387873754
            Waiting time:2095720 HardIrq time:404 SoftIRQ time:650273 Steal time:0  guest time:0

            CPU占用率計算公式
            CPU時間=user+system+nice+idle+iowait+irq+softirq+Stl +guest
            %us=(User time + Nice time)/CPU時間*100%
            %sy=(System time + Hard Irq time +SoftIRQ time)/CPU時間*100%
            %id=(Idle time)/CPU時間*100%
            %ni=(Nice time)/CPU時間*100% %wa=(Waiting time)/CPU時間*100%
            %hi=(Hard Irq time)/CPU時間*100%
            %si=(SoftIRQ time)/CPU時間*100%
            %st=(Steal time)/CPU時間*100%

            CPU利用率總節(jié):

            (1)Linux CPU占用率是根據(jù)/proc/stat文件中的數(shù)據(jù)計算而來;
            (2)/proc/stat中的數(shù)據(jù)精度為ticks,即1/HZ秒;
            (3)內(nèi)核每個ticks會更新一次CPU使用信息;
            (4)CPU占用率的精度為1/HZ秒。


            *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。



            關(guān)鍵詞: linux

            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉