Linux中什么是平均負(fù)載

這篇文章主要介紹Linux中什么是平均負(fù)載,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)公司是一家專業(yè)提供益陽企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、html5、小程序制作等業(yè)務(wù)。10年已為益陽眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

什么是平均負(fù)載

熟悉 Linux 者知道,使用 top uptime 命令可以查看 load average 指標(biāo)。

使用 man uptime 查看 Load average 解釋:

System load averages is the average number of processes that are either in a runnable or uninterruptable state.   A  process  in  a  runnable state  is  either using the CPU or waiting to use the CPU.  A process in uninterruptable state is waiting for some I/O access, eg waiting for disk.  The averages are taken over the three time intervals.  Load averages are not normalized for the number of CPUs in a system, so a  load average of 1 means a single CPU system is loaded all the time while on a 4 CPU system it means it was idle 75% of the time.

理解關(guān)鍵地方,平均負(fù)載是指,在單位時(shí)間內(nèi),系統(tǒng)中處于 可運(yùn)行狀態(tài) 與 不可中斷狀態(tài) 的平均進(jìn)程數(shù),簡稱平均活躍進(jìn)程數(shù)。值得注意的是,它與 CPU 使用率沒有直接關(guān)系

使用命令 ps aux 可以查看進(jìn)程的狀態(tài) stat,如本文要注意的:

R 狀態(tài),可運(yùn)行狀態(tài) ( Running / Runnable ),正在使用 CPU 或者正在等待 CPU 的進(jìn)程D 狀態(tài),不可中斷狀態(tài)( Uninterruptitle Sleep, 又稱 Disk Sleep ),正處于內(nèi)核態(tài)關(guān)鍵流程中的進(jìn)程,并且是不可中斷的。

D 狀態(tài)為何不可打斷呢,舉個(gè)例子,系統(tǒng)調(diào)用起硬件設(shè)備的 I/O 響應(yīng),為了保證數(shù)據(jù)的一致性,在磁盤設(shè)備返回?cái)?shù)據(jù)前,它是不能倍其他進(jìn)程或者中斷打斷的,如果被打斷,就容易造成磁盤數(shù)據(jù)與進(jìn)程數(shù)據(jù)不一致的問題。于是,不可中斷(D)狀態(tài)是系統(tǒng)對進(jìn)程與硬件設(shè)備的一種保護(hù)機(jī)制。

平均活躍進(jìn)程數(shù),嚴(yán)格意義上,它是活躍進(jìn)程數(shù)的指數(shù)衰減平均值(某個(gè)量的下降速度和它的值成比例)。通常情況下,理解為單位時(shí)間上的活躍進(jìn)程數(shù)即可。

CPU 利用率與平衡負(fù)載

從 CPU 角度來說,Load average 只是反映單位時(shí)間內(nèi)占用 CPU 的進(jìn)程數(shù)量,而 CPU 利用率與進(jìn)程數(shù)量沒有直接關(guān)系,我們可以使用命令 top vmstat 查看 CPU 的利用率,有以下幾個(gè)指標(biāo):

%us:表示用戶空間程序的cpu使用率(沒有通過nice調(diào)度)%sy:表示系統(tǒng)空間的cpu使用率,主要是內(nèi)核程序。%ni:表示用戶空間且通過nice調(diào)度過的程序的cpu使用率。%id:空閑cpu%wa:cpu運(yùn)行時(shí)在等待io的時(shí)間%hi:cpu處理硬中斷的數(shù)量%si:cpu處理軟中斷的數(shù)量%st:被虛擬機(jī)偷走的cpu

如何衡量合理的平均負(fù)載

一般來講,Load average 低于 CPU 數(shù)量的話,機(jī)器性能滿足服務(wù)需求,超出一些也沒關(guān)系,Load average 不直接代表 CPU 利用率,可能是 io 阻塞比較多。當(dāng) Load average 高于 CPU 數(shù)量的 70%,就可能導(dǎo)致進(jìn)程響應(yīng)變慢,進(jìn)而影響服務(wù)的正常功能。

從歷史變化量來看

一般來講,top uptime 提供 load average 三個(gè)時(shí)間點(diǎn)的指標(biāo),分別是:1分鐘、5分鐘、15分鐘。這反映了系統(tǒng)最近的狀態(tài)變化趨勢。在實(shí)際生產(chǎn)環(huán)境中,我們需要做長期的監(jiān)控記錄。如果有異常的數(shù)值變化,比如平均負(fù)載數(shù)是CPU的兩倍,需要分析調(diào)查問題。

從平衡負(fù)載與 CPU 利用率 這兩類指標(biāo)綜合分析

兩類指標(biāo)的不同,組合出以下幾種可能情況:

Load average 高,CPU use 高,要么運(yùn)行了 CPU 密集型進(jìn)程(線程),要么有大量等待 CPU 的進(jìn)程(線程)調(diào)度Load average 高,CPU use 底,運(yùn)行了 IO 密集型進(jìn)程兩者都比較低,正常Load average 底,CPU use 高,這是不存在的

模擬案例與工具

我們?nèi)绾畏治銎胶庳?fù)載與 CPU 利用率這兩類指標(biāo)不同組合的案例,尋找造成指標(biāo)變化的來源?

以下環(huán)境為 Linux Arch 4.19 / 4 CPU / 8G Memory

工具列表

stress 系統(tǒng)壓力測試工具

sysstat 性能分析工具包:

mpstat 多核 CPU 分析性能工具,mp 的意思是 multi processors (多處理器)pidstat 進(jìn)程性能分析工具,pid 意為進(jìn)程 ID。它用于查看進(jìn)程的 CPU、內(nèi)存、I/O以及上下文切換等指標(biāo)

模擬場景

使用 stress 可以模擬以下場景

CPU密集型進(jìn)程

# 模擬一個(gè)進(jìn)程, 對 cpu 使用率 100%,限時(shí) 600s
stress --cpu 1 --timeout 600

IO 密集型進(jìn)程

stress 的 -i 選項(xiàng),spawn N workers spinning on sync()

# 模擬一個(gè)進(jìn)程不停的執(zhí)行 sync
stress -i 1 --timeout 600

大量進(jìn)程的場景

# 模擬16個(gè)進(jìn)程, 對 cpu 使用率 100%,限時(shí) 600s
stress --cpu 16 --timeout 600

工具指標(biāo)

mpstat -P ALL 5 監(jiān)控所有 CPU,每隔5秒輸出一組數(shù)據(jù),注意指標(biāo) %usr 使用率,%iowait IO 阻塞時(shí)間,從這可以判斷是 CPU 密集型還是 IO 密集型pidstat -u 5 1 統(tǒng)計(jì)間隔5秒內(nèi),使用過 CPU 的進(jìn)程的數(shù)據(jù),注意指標(biāo) %usr 使用率,%wait 等待使用 CPU 的時(shí)間,從這可以判斷是否進(jìn)程(線程)過多

以上是Linux中什么是平均負(fù)載的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享題目:Linux中什么是平均負(fù)載
本文URL:http://bm7419.com/article12/igssdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、網(wǎng)頁設(shè)計(jì)公司、微信公眾號、小程序開發(fā)、域名注冊網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)