亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線(xiàn)咨詢(xún)客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

什么是平均負(fù)載

系統(tǒng)平均負(fù)載是可運(yùn)行或不中斷的平均進(jìn)程數(shù)。
處于可運(yùn)行狀態(tài)的進(jìn)程正在使用CPU或等待使用CPU。無(wú)限的過(guò)程
可中斷狀態(tài)正在等待某些I / O訪(fǎng)問(wèn),例如,等待磁盤(pán)。取三項(xiàng)平均值
時(shí)間間隔。負(fù)載平均沒(méi)有針對(duì)系統(tǒng)中的CPU數(shù)量標(biāo)準(zhǔn)化,因此負(fù)載平均為1
表示一直裝載單個(gè)CPU系統(tǒng),而在4個(gè)CPU系統(tǒng)上則意味著75%的時(shí)間處于空閑狀態(tài)

如何查看系統(tǒng)的平均負(fù)載

uptime 命令

例如

uptime
 16:00:44 up 2 min,  0 users,  load average: 0.52, 0.58, 0.59

uptime 命令的平均負(fù)載值和cpu數(shù)量有密切的關(guān)系

平均負(fù)載案例分析

下?,我們以三個(gè)示例分別來(lái)看這三種情況,并? IOStat、mpstat、pidstat 等?具,找出平均負(fù)載升?的根源。

因?yàn)榘咐治龆际腔跈C(jī)器上的操作,所以不要只是聽(tīng)聽(tīng)、看看就夠了,最好還是跟著我實(shí)際操作?下。

你的準(zhǔn)備

下?的案例都是基于 Ubuntu 18.04,當(dāng)然,同樣適?于其他 linux 系統(tǒng)。我使?的案例環(huán)境如下所示。

機(jī)器配置:2 CPU,8GB 內(nèi)存。預(yù)先安裝 stress 和 sysstat 包,如 apt install stress sysstat。

在這?,我先簡(jiǎn)單介紹?下 stress 和 sysstat。

stress 是?個(gè) Linux 系統(tǒng)壓?測(cè)試?具,這?我們?作異常進(jìn)程模擬平均負(fù)載升?的場(chǎng)景。

? sysstat 包含了常?的 Linux 性能?具,?來(lái)監(jiān)控和分析系統(tǒng)的性能。我們的案例會(huì)?到這個(gè)包的兩個(gè)命令 mpstat 和pidstat。

 

Linux 性能性能優(yōu)化之平均負(fù)載

 

 

mpstat 是?個(gè)常?的多核 CPU 性能分析?具,?來(lái)實(shí)時(shí)查看每個(gè) CPU 的性能指標(biāo),以及所有CPU的平均指標(biāo)。

pidstat 是?個(gè)常?的進(jìn)程性能分析?具,?來(lái)實(shí)時(shí)查看進(jìn)程的 CPU、內(nèi)存、I/O 以及上下?切換等性能指標(biāo)。

此外,每個(gè)場(chǎng)景都需要你開(kāi)三個(gè)終端,登錄到同?臺(tái) Linux 機(jī)器中。

實(shí)驗(yàn)之前,你先做好上?的準(zhǔn)備。如果包的安裝有問(wèn)題,可以先在google?下??解決,如果還是解決不了,再來(lái)留?區(qū)找

我,這事?應(yīng)該不難。

另外要注意,下?的所有命令,我們都是默認(rèn)以 root ?戶(hù)運(yùn)?。所以,如果你是?普通?戶(hù)登陸的系統(tǒng),一定要先運(yùn)? sudo

su root 命令切換到 root ?戶(hù)。

如果上?的要求都已經(jīng)完成了,你可以先? uptime 命令,看一下測(cè)試前的平均負(fù)載情況:

$ uptime

..., load average: 0.11, 0.15, 0.09

場(chǎng)景?:CPU 密集型進(jìn)程

?先,我們?cè)诘?個(gè)終端運(yùn)? stress 命令,模擬?個(gè) CPU 使?率 100% 的場(chǎng)景:

$ stress --cpu 1 --timeout 600

接著,在第?個(gè)終端運(yùn)?uptime查看平均負(fù)載的變化情況:

# -d 參數(shù)表示?亮顯示變化的區(qū)域

$ watch -d uptime

..., load average: 1.00, 0.75, 0.39

最后,在第三個(gè)終端運(yùn)?mpstat查看 CPU 使?率的變化情況:

# -P ALL 表示監(jiān)控所有CPU,后?數(shù)字5表示間隔5秒后輸出?組數(shù)據(jù)

$ mpstat -P ALL 5

Linux 4.15.0 (ubuntu) 09/22/18 _x86_64_ (2 CPU)

13:30:06 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle

13:30:11 all 50.05 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 49.95

13:30:11 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00

13:30:11 1 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00從終端?中可以看到,1 分鐘的平均負(fù)載會(huì)慢慢增加到 1.00,?從終端三中還可以看到,正好有?個(gè) CPU 的使?率為

100%,但它的 iowait 只有 0。這說(shuō)明,平均負(fù)載的升?正是由于 CPU 使?率為 100% 。

那么,到底是哪個(gè)進(jìn)程導(dǎo)致了 CPU 使?率為 100% 呢?你可以使? pidstat 來(lái)查詢(xún):

# 間隔5秒后輸出?組數(shù)據(jù)

$ pidstat -u 5 1

13:37:07 UID PID %usr %system %guest %wait %CPU CPU Command

13:37:12 0 2962 100.00 0.00 0.00 0.00 100.00 1 stress

從這?可以明顯看到,stress進(jìn)程的CPU使?率為100%。

場(chǎng)景?:I/O 密集型進(jìn)程

?先還是運(yùn)? stress 命令,但這次模擬 I/O 壓?,即不停地執(zhí)? sync:

$ stress -i 1 --timeout 600

還是在第?個(gè)終端運(yùn)?uptime查看平均負(fù)載的變化情況:

$ watch -d uptime

..., load average: 1.06, 0.58, 0.37

然后,第三個(gè)終端運(yùn)?mpstat查看 CPU 使?率的變化情況:

# 顯示所有CPU的指標(biāo),并在間隔5秒輸出?組數(shù)據(jù)

$ mpstat -P ALL 5 1
Linux 4.15.0 (ubuntu) 09/22/18 _x86_64_ (2 CPU)
13:41:28 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
13:41:33 all 0.21 0.00 12.07 32.67 0.00 0.21 0.00 0.00 0.00 54.84
13:41:33 0 0.43 0.00 23.87 67.53 0.00 0.43 0.00 0.00 0.00 7.74
13:41:33 1 0.00 0.00 0.81 0.20 0.00 0.00 0.00 0.00 0.00 98.99

從這?可以看到,1 分鐘的平均負(fù)載會(huì)慢慢增加到 1.06,其中?個(gè) CPU 的系統(tǒng)CPU使?率升?到了 23.87,? iowait ?達(dá)

67.53%。這說(shuō)明,平均負(fù)載的升?是由于 iowait 的升?。

那么到底是哪個(gè)進(jìn)程,導(dǎo)致 iowait 這么?呢?我們還是? pidstat 來(lái)查詢(xún):# 間隔5秒后輸出?組數(shù)據(jù),-u表示CPU指標(biāo)

$ pidstat -u 5 1
Linux 4.15.0 (ubuntu) 09/22/18 _x86_64_ (2 CPU)
13:42:08 UID PID %usr %system %guest %wait %CPU CPU Command
13:42:13 0 104 0.00 3.39 0.00 0.00 3.39 1 kworker/1:1H
13:42:13 0 109 0.00 0.40 0.00 0.00 0.40 0 kworker/0:1H
13:42:13 0 2997 2.00 35.53 0.00 3.99 37.52 1 stress
13:42:13 0 3057 0.00 0.40 0.00 0.00 0.40 0 pidstat

可以發(fā)現(xiàn),還是 stress 進(jìn)程導(dǎo)致的。

場(chǎng)景三:?量進(jìn)程的場(chǎng)景

當(dāng)系統(tǒng)中運(yùn)?進(jìn)程超出 CPU 運(yùn)?能?時(shí),就會(huì)出現(xiàn)等待 CPU 的進(jìn)程。

?如,我們還是使? stress,但這次模擬的是 8 個(gè)進(jìn)程:

$ stress -c 8 --timeout 600

由于系統(tǒng)只有 2 個(gè)CPU,明顯? 8 個(gè)進(jìn)程要少得多,因?,系統(tǒng)的 CPU 處于嚴(yán)重過(guò)載狀態(tài),平均負(fù)載?達(dá)7.97:

$ uptime
..., load average: 7.97, 5.93, 3.02

接著再運(yùn)?pidstat來(lái)看?下進(jìn)程的情況:

# 間隔5秒后輸出?組數(shù)據(jù)

$ pidstat -u 5 1
14:23:25 UID PID %usr %system %guest %wait %CPU CPU Command
14:23:30 0 3190 25.00 0.00 0.00 74.80 25.00 0 stress
14:23:30 0 3191 25.00 0.00 0.00 75.20 25.00 0 stress
14:23:30 0 3192 25.00 0.00 0.00 74.80 25.00 1 stress
14:23:30 0 3193 25.00 0.00 0.00 75.00 25.00 1 stress
14:23:30 0 3194 24.80 0.00 0.00 74.60 24.80 0 stress
14:23:30 0 3195 24.80 0.00 0.00 75.00 24.80 0 stress
14:23:30 0 3196 24.80 0.00 0.00 74.60 24.80 1 stress
14:23:30 0 3197 24.80 0.00 0.00 74.80 24.80 1 stress
14:23:30 0 3200 0.00 0.20 0.00 0.20 0.20 0 pidstat

可以看出,8 個(gè)進(jìn)程在爭(zhēng)搶 2 個(gè) CPU,每個(gè)進(jìn)程等待 CPU 的時(shí)間(也就是代碼塊中的 %wait 列)?達(dá) 75%。這些超出 CPU

計(jì)算能?的進(jìn)程,最終導(dǎo)致 CPU 過(guò)載。

總結(jié)

分析完這三個(gè)案例,我再來(lái)歸納總結(jié)下平均負(fù)載的理解。平均負(fù)載提供了一個(gè)快速查看系統(tǒng)整體性能的?段,反映了整體的負(fù)載情況。但只看平均負(fù)載本身,我們并不能直接發(fā)現(xiàn),到

底是哪?出現(xiàn)了瓶頸。所以,在理解平均負(fù)載時(shí),也要注意:

平均負(fù)載?有可能是 CPU 密集型進(jìn)程導(dǎo)致的;

平均負(fù)載?并不?定代表 CPU 使?率?,還有可能是 I/O 更繁忙了;

當(dāng)發(fā)現(xiàn)負(fù)載?的時(shí)候,你可以使? mpstat、pidstat 等?具,輔助分析負(fù)載的來(lái)源。

分享到:
標(biāo)簽:性能 優(yōu)化 Linux
用戶(hù)無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定