uptime
dyy@dyy-Lenovo-ThinkBook-14-IIL:~$ uptime
10:27:10 up 7 min, 1 user, load average: 1.32, 0.99, 0.49
結果分別對應:當前時間、系統運行時間、當前用戶數目、過去 1 分鐘、5 分鐘、15 分鐘的平均負載(Load
Average)
平均負載是指單位時間內,系統處于可運行狀態和不可中斷狀態的平均行程數,也就是平均活躍行程數,和 CPU使用率沒有直接關系,
可運行狀態行程:正在使用CPU或者正在等待CPU的行程;即ps命令看到的,處于R狀態的行程
不可中斷狀態行程:正處于內核態關鍵流程中的行程,并且這些流程是不可打斷的,比如等待硬體設備的I/O回應,即ps命令中看到的D狀態的行程,
不可中斷狀態實際上是系統對行程和硬體設備的一種保護機制,
下面陳述句可以得到CPU個數,一般來說,平均負載大于CPU的0.7倍時就需要注意了,大于CPU個數的話就會出現過載,
grep 'model name' /proc/cpuinfo | wc -l
8
通過對于平均負載的定義可以看出,它不僅包括了正在使用CPU的行程,還包括等待CPU和等待IO的行程,
CPU使用率與平均負載的關系:
CPU密集型行程,使用大量CPU會導致平均負載升高,兩者一致,
I/O密集型行程,等待I/O也會導致平均負載升高,但CPU使用率不一定很高,
大量等待CPU的行程調度也會導致平均負載升高,此時的CPU使用率也會比較高,
接下來是實測:
CPU 密集型行程
stress 是一個 Linux 系統壓力測驗工具,我們在終端1運行該工具,
在終端2,不斷運行uptime,可以發現平均負載在不斷上升,
mpstat 是一個常用的多核 CPU 性能分析工具,用來實時查看每個 CPU 的性能指標,以
及所有 CPU 的平均指標,我們在終端3運行它,可以發現有一個核的使用率為100%,但是iowait為0.

通過運行# pidstat -u 5 1,可以看到是運行stress的行程占用率為100%

IO密集型行程
stress 命令,但這次模擬 I/O 壓力,即不停地執行 sync,下面是顯示效果,可以發現iowait很高,導致了平均負載很高,


大量行程場景
由于機子有8個核,我開12個行程用作運行stress,這樣CPU處于過載狀態,10.92明顯是比8大的,再用pidstat可以看出

個行程等待 CPU 的時間(也就是代碼塊中的%wait 列)高達 60~75%,這里就是上圖的倒數第二列顯示,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/299504.html
標籤:其他
上一篇:???Kettle--老板說:這套生產資料庫千萬、億級資料量遷移方案,學會就賺了???(作業學習必備,建議收藏)
下一篇:測驗工具研發_生成隨機用戶名
