平均負(fù)載袒炉,指單位時(shí)間內(nèi),系統(tǒng)處于可運(yùn)行狀態(tài)和不可中斷狀態(tài)的平均進(jìn)程數(shù)点骑,即平均活躍進(jìn)程數(shù)泛范,它和cpu使用率沒有直接關(guān)系让虐。
可運(yùn)行狀態(tài)的進(jìn)程:正在使用cpu或者正在等待cpu的進(jìn)程,也就是我們常用ps命令看到的敦跌,處于R狀態(tài)(Running或Runnable)的進(jìn)程澄干。
不可中斷狀態(tài)的進(jìn)程:正處于內(nèi)核態(tài)關(guān)鍵流程中的進(jìn)程逛揩,并且這些流程是不可打斷的,比如最常見的是等待硬件設(shè)備的I/O響應(yīng)麸俘,也就是我們?cè)趐s命令中看到的D狀態(tài)(UninterruptibleSleep辩稽,也稱為Disk Sleep)的進(jìn)程。不可中斷狀態(tài)實(shí)際上是系統(tǒng)對(duì)進(jìn)程和硬件設(shè)備的一種保護(hù)機(jī)制从媚。
既然平均負(fù)載代表的是活躍的進(jìn)程數(shù)逞泄,那平均負(fù)載高了,是不是就意味著cpu使用率高拜效?
平均負(fù)載:?jiǎn)挝粫r(shí)間內(nèi)喷众,處于可運(yùn)行狀態(tài)和不可中斷狀態(tài)的進(jìn)程數(shù)。所以不僅包括了正在使用的cpu的進(jìn)程紧憾,還包括等待cpu和等待i/o的進(jìn)程到千。
cpu使用率:?jiǎn)挝粫r(shí)間內(nèi)cpu繁忙情況的統(tǒng)計(jì),和平均負(fù)載并不完全對(duì)應(yīng)赴穗。比如:
cpu密集型進(jìn)程憔四,使用大量cpu會(huì)導(dǎo)致平均負(fù)載升高,此時(shí)兩者一致般眉。
i/o密集型進(jìn)程了赵,等待i/o也會(huì)導(dǎo)致平均負(fù)載升高,但cpu使用率不一定很高甸赃。
大量等待cpu的進(jìn)程調(diào)度也會(huì)導(dǎo)致平均負(fù)載升高柿汛,此時(shí)的cpu使用率也會(huì)比較高。