性能指標
性能優化核心指標:吞吐和延遲
Linux Performance Tools:

平均負載
? ~ uptime
11:32 up 5 days, 19:45, 2 users, load averages: 2.01 1.86 2.04
11:32 //當前時間
up 5 days, 19:45 //系統運行時間
2 users //正在登錄用戶數
load averages: 2.01 1.86 2.04 //過去 1 分鐘、5 分鐘、15 分鐘的平均負載
System load averages is the average number of processes that are either in a runnable or uninterruptable state.
- 可運行狀態的行程,是指正在使用 CPU 或者正在等待 CPU 的行程,也就是我們常用 ps 命令看到的,處于 R 狀態(Running 或 Runnable)的行程,
- 不可中斷狀態的行程則是正處于內核態關鍵流程中的行程,并且這些流程是不可打斷的,比如最常見的是等待硬體設備的 I/O 回應,也就是我們在 ps 命令中看到的 D 狀態(Uninterruptible Sleep,也稱為 Disk Sleep)的行程,
- 不可中斷狀態實際上是系統對行程和硬體設備的一種保護機制,
//查看linux系統的核數
[root@k8s ~]# grep 'model name' /proc/cpuinfo | wc -l
統計檔案行數 wc -l
根據核數我們可以判斷平均負載的情況,平均負載是指單位時間內,處于可運行狀態和不可中斷狀態的行程數,所以,它不僅包括了正在使用 CPU 的行程,還包括等待 CPU 和等待 I/O 的行程,
CPU 使用率,是單位時間內 CPU 繁忙情況的統計,跟平均負載并不一定完全對應,比如:
- CPU 密集型行程,使用大量 CPU 會導致平均負載升高,此時這兩者是一致的;
- I/O 密集型行程,等待 I/O 也會導致平均負載升高,但 CPU 使用率不一定很高;
- 大量等待 CPU 的行程調度也會導致平均負載升高,此時的 CPU 使用率也會比較高,
壓測工具
stress 是一個 Linux 系統壓力測驗工具,常用來例外行程模擬平均負載升高的場景,
sysstat 包含了常用的 Linux 性能工具,用來監控和分析系統的性能,我們的案例會用到這個包的兩個命令 mpstat 和 pidstat,
- mpstat 是一個常用的多核 CPU 性能分析工具,用來實時查看每個 CPU 的性能指標,以及所有 CPU 的平均指標,
- pidstat 是一個常用的行程性能分析工具,用來實時查看行程的 CPU、記憶體、I/O 以及背景關系切換等性能指標,
//通過呼叫 sqrt 函式計算由 rand 函式產生的亂數的平方根
stress -c 4
//呼叫 sync 函式將記憶體上的內容寫到硬碟上,消耗IO資源
stress -i 4
// 監測全部CPU,每5s輸出一次資料
mpstat -P ALL 5
// 5s為采樣周期,輸出行程資訊
pidstat 5
學習筆記
來自極客時間:《Linux性能優化實戰》
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/114378.html
標籤:Linux
下一篇:Linux CPU背景關系切換
