Linux性能指標和平均負載

性能指標

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

平均負載

➜  ~ 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
相關文章
相關標籤/搜索