日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

什么是平均負載

系統平均負載是可運行或不中斷的平均進程數。
處于可運行狀態的進程正在使用CPU或等待使用CPU。無限的過程
可中斷狀態正在等待某些I / O訪問,例如,等待磁盤。取三項平均值
時間間隔。負載平均沒有針對系統中的CPU數量標準化,因此負載平均為1
表示一直裝載單個CPU系統,而在4個CPU系統上則意味著75%的時間處于空閑狀態

如何查看系統的平均負載

uptime 命令

例如

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

uptime 命令的平均負載值和cpu數量有密切的關系

平均負載案例分析

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

因為案例分析都是基于機器上的操作,所以不要只是聽聽、看看就夠了,最好還是跟著我實際操作?下。

你的準備

下?的案例都是基于 Ubuntu 18.04,當然,同樣適?于其他 linux 系統。我使?的案例環境如下所示。

機器配置:2 CPU,8GB 內存。預先安裝 stress 和 sysstat 包,如 apt install stress sysstat。

在這?,我先簡單介紹?下 stress 和 sysstat。

stress 是?個 Linux 系統壓?測試?具,這?我們?作異常進程模擬平均負載升?的場景。

? sysstat 包含了常?的 Linux 性能?具,?來監控和分析系統的性能。我們的案例會?到這個包的兩個命令 mpstat 和pidstat。

 

Linux 性能性能優化之平均負載

 

 

mpstat 是?個常?的多核 CPU 性能分析?具,?來實時查看每個 CPU 的性能指標,以及所有CPU的平均指標。

pidstat 是?個常?的進程性能分析?具,?來實時查看進程的 CPU、內存、I/O 以及上下?切換等性能指標。

此外,每個場景都需要你開三個終端,登錄到同?臺 Linux 機器中。

實驗之前,你先做好上?的準備。如果包的安裝有問題,可以先在google?下??解決,如果還是解決不了,再來留?區找

我,這事?應該不難。

另外要注意,下?的所有命令,我們都是默認以 root ?戶運?。所以,如果你是?普通?戶登陸的系統,一定要先運? sudo

su root 命令切換到 root ?戶。

如果上?的要求都已經完成了,你可以先? uptime 命令,看一下測試前的平均負載情況:

$ uptime

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

場景?:CPU 密集型進程

?先,我們在第?個終端運? stress 命令,模擬?個 CPU 使?率 100% 的場景:

$ stress --cpu 1 --timeout 600

接著,在第?個終端運?uptime查看平均負載的變化情況:

# -d 參數表示?亮顯示變化的區域

$ watch -d uptime

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

最后,在第三個終端運?mpstat查看 CPU 使?率的變化情況:

# -P ALL 表示監控所有CPU,后?數字5表示間隔5秒后輸出?組數據

$ 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 分鐘的平均負載會慢慢增加到 1.00,?從終端三中還可以看到,正好有?個 CPU 的使?率為

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

那么,到底是哪個進程導致了 CPU 使?率為 100% 呢?你可以使? pidstat 來查詢:

# 間隔5秒后輸出?組數據

$ 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進程的CPU使?率為100%。

場景?:I/O 密集型進程

?先還是運? stress 命令,但這次模擬 I/O 壓?,即不停地執? sync:

$ stress -i 1 --timeout 600

還是在第?個終端運?uptime查看平均負載的變化情況:

$ watch -d uptime

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

然后,第三個終端運?mpstat查看 CPU 使?率的變化情況:

# 顯示所有CPU的指標,并在間隔5秒輸出?組數據

$ 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 分鐘的平均負載會慢慢增加到 1.06,其中?個 CPU 的系統CPU使?率升?到了 23.87,? iowait ?達

67.53%。這說明,平均負載的升?是由于 iowait 的升?。

那么到底是哪個進程,導致 iowait 這么?呢?我們還是? pidstat 來查詢:# 間隔5秒后輸出?組數據,-u表示CPU指標

$ 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

可以發現,還是 stress 進程導致的。

場景三:?量進程的場景

當系統中運?進程超出 CPU 運?能?時,就會出現等待 CPU 的進程。

?如,我們還是使? stress,但這次模擬的是 8 個進程:

$ stress -c 8 --timeout 600

由于系統只有 2 個CPU,明顯? 8 個進程要少得多,因?,系統的 CPU 處于嚴重過載狀態,平均負載?達7.97:

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

接著再運?pidstat來看?下進程的情況:

# 間隔5秒后輸出?組數據

$ 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 個進程在爭搶 2 個 CPU,每個進程等待 CPU 的時間(也就是代碼塊中的 %wait 列)?達 75%。這些超出 CPU

計算能?的進程,最終導致 CPU 過載。

總結

分析完這三個案例,我再來歸納總結下平均負載的理解。平均負載提供了一個快速查看系統整體性能的?段,反映了整體的負載情況。但只看平均負載本身,我們并不能直接發現,到

底是哪?出現了瓶頸。所以,在理解平均負載時,也要注意:

平均負載?有可能是 CPU 密集型進程導致的;

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

當發現負載?的時候,你可以使? mpstat、pidstat 等?具,輔助分析負載的來源。

分享到:
標簽:性能 優化 Linux
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定