2 平均負載是什麼?

一 平均負載是什麼?

  1. 平均負載時的單位時間,是系統處於可運行狀態和不可中斷情況的平均進程數,總之爲平均活躍的進程數。怎麼驗證這是對的呢。使用man uptime如下圖所示。
    在這裏插入圖片描述
  2. 那麼什麼是不可中斷的狀態和可運行狀態呢
    不可中斷的狀態,顧名思義是這個狀態不要打斷我,打斷我就是搞事情,不如網絡一下就不通了。
    可運行狀態,也就是這個進程可能是在使用cpu或者在排隊等着要使用cpu。
–不可中斷進程 處於內核態的關鍵進程。從ps中我們看到的是D狀態
–可運行狀態 正在使用cpu或者正在等待cpu,可以通過ps -ef看到的狀態爲R狀態的進程

二 平均負載和cpu的關係?

  1. 剛纔知道了是平均的活躍進程數,那麼最理想的是每個cpu剛好佔用一個進程,這樣子就充分利用了。如果是有兩個cpu的情況下。

    - 在只有2個cpu系統上,cpu剛好被完全佔用
    - 在4個cpu系統上,那麼cpu有一半是空閒的
    - 在1個cpu上,就會出現打架競爭的關係,有一半的進程可能爭取不到cpu。
    
  2. 平均負載多少纔算合理的呢
    (1) 先查看有幾個cpu

方法1:top 輸出的詳細含義後面有介紹
方法2: cat /proc/cpuinfo /proc是用戶態到內核態的橋樑
方法3:grep ‘model name’ /proc/cpuinfo | wc -l

(2) 知道了cpu數,然後通過uptime命令查看平均負載值

三 在Linux中使用什麼工具查看系統負載情況?

  1. uptime工具
    (1) uptime使用
    在這裏插入圖片描述
    (2) uptime命令輸出的參數含義(主要是最後三個參數)
    在這裏插入圖片描述
  2. top工具
    (1) top使用
    在這裏插入圖片描述
    (2) top命令輸出的參數含義
    1)其中第一行包括系統的當前時間(21:49:34),自linux操作系統啓動運行以來累計運行時間(0分鐘),目前登錄到linux操作系統的用戶數(1個),以及系統運行在最近1分鐘,5分鐘和15分鐘內系統運行的平均負載。
    2)第二行是關於進程的統計信息,包括系統中現有進程的總數(137),當前正在運行的進程數量(3),處於休眠狀態的進程數量(134),處於暫停狀態的進程數量(0),處於殭屍狀態的進程數量(0)。
    3)第三行是關於CPU的統計信息,CPU處於用戶模式(66),CPU處於系統模式(33),CPU處理其優先級經nice值調整過的用戶進程的時間量所佔百分比(0),CPU處於空閒狀態(0),CPU處於等待I/O狀態(0.7),CPU處理硬件中斷狀態(0),CPU處理軟件中斷狀態(0.3),CPU處理st(Steal Time)狀態(0)。
    4)第四行是關於內存的統計信息,系統配置的物理內存總量,已用內存數量,空閒內存數量,用作緩衝區的內存數量。
    5)第五行是關於交換區的統計信息,系統配置的交換區總量,已用交換區數量,空閒交換區數量,用作緩衝區的交換區數量。

四 平均負載和cpu使用率

  1. 平均負載高了,就認爲cpu使用率高了?
    不一定。因爲cpu使用(單位時間cpu繁忙程度),包括正在使用cpu的進程和等待cpu和等待io的進程。

cpu密集:大量進程使用cpu
io密集:等待io也會導致平均負載升高,但是cpu的使用率不一定高

五 兩個案例

  1. 案例1 模擬cpu密集場景
    (1) 先安裝咋們需要的軟件包。
    在這裏插入圖片描述
    (2) 使用xshell打開三個窗口
    第一個窗口:stress --cpu 1 --timeout 600 模擬一個cpu使用100%的場景
    在這裏插入圖片描述
    第二個窗口:運行uptime查看負載 watch -d uptime(watch可以動態觀察命令執行情況)
    在這裏插入圖片描述
    第三個窗口:mpstat查看cpu使用率情況(mpstat -P ALL) 5.監控所有的cpu,5代表的每5秒輸出一下結果
    在這裏插入圖片描述
    分析:

從窗口2可以知道,1分鐘的平均負載很快超過了1,但是iowait爲0.所以平均負載升高的主要原因應該是cpu使用率爲98%所致

在這裏插入圖片描述

2 案例2 模擬8個進程
第一個窗口 模擬IO壓力,執行sync stress -c 8 8 --timeout 600
第二個窗口 uptime
在這裏插入圖片描述
第三個窗口 mpstat查看cpu使用率 midstat -u 5 1
在這裏插入圖片描述
分析:

一個cpu被8個進程在爭搶

六 總結

1 可以通過uptime命令查看系統的基本整體性能。
2 平均負載的結果可能是cpu密集進程導致也可能是IO繁忙導致
3 學習工具midstat和stress

發佈了34 篇原創文章 · 獲贊 65 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章