Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux sar 指令完全指南:系統效能監控 8 大維度與瓶頸診斷實戰

編輯:關於 Linux

sar(System Activity Reporter)是 Linux 系統效能監控的瑞士刀,從 CPU、記憶體、I/O、網路、程序佇列到交換活動,提供歷史資料彙總與即時採樣雙重模式。本文詳細解析 8 大監控維度參數、輸出欄位含義、瓶頸診斷組合策略、資料彙總與自動化腳本,助你建立專業級效能基準線。

指令語法與核心模式


sar [選項] [間隔秒數] [採樣次數]
sar [選項] -f 資料檔        # 讀取二進制資料檔
sar [選項] -o 資料檔 間隔 次數  # 同時存檔與顯示
  • 間隔秒數:採樣週期(預設 1 秒)
  • 採樣次數:採樣總數(預設 1,持續至中斷)
  • -o 檔案:二進制儲存供事後分析
  • -f 檔案:讀取歷史資料檔
  • -A:所有報表彙總

8 大核心監控維度參數速查

參數監控維度關鍵指標診斷目標
-uCPU 使用率%user, %sys, %iowait, %idleCPU 瓶頸、I/O 等待、系統負載
-r記憶體與交換空間kbmemfree, kbmemused, %memused, kbbuffers, kbcached, kbcommit記憶體壓力、快取效率、OOM 風險
-B記憶體分頁活動pgpgin/s, pgpgout/s, fault/s, majflt/s, pgsteal/s, %vmeff分頁頻率、主要缺頁、回收效率
-bI/O 與傳輸速率tps, rtps, wtps, bread/s, bwrtn/s磁碟 I/O 負載、讀寫比例
-d裝置使用情況tps, rd_sec/s, wr_sec/s, avgrq-sz, avgqu-sz, await, svctm, %util磁碟飽和度、延遲、隊列長度
-q程序佇列與負載runq-sz, plist-sz, ldavg-1/5/15擁塞度、負載趨勢
-W交換活動pswpin/s, pswpout/sSwap 使用強度、抖動
-v核心表狀態dentunusd, file-nr, inode-nr, pty-nr檔案句柄耗盡、inode 耗盡

各維度詳細輸出解析與判讀標準

1. CPU 資源監控(-u)


sar -u 10 3
# 輸出範例
17:06:16 CPU %user %nice %system %iowait %steal %idle
17:06:26 all 0.00 0.00 0.20 0.00 0.00 99.80
Average: all 0.00 0.00 0.17 0.00 0.00 99.83
欄位含義告警閾值
%user用戶態佔比> 70% 持續 → 應用計算密集
%system核心態佔比> 30% → 系統呼叫過多、鎖競爭
%iowaitI/O 等待佔比> 20% → 磁碟瓶頸、NFS 延遲
%idle閒置佔比< 10% 持續 → CPU 飽和
%steal虛擬化偷取> 10% → 宿主機超售

2. 記憶體監控(-r)


sar -r 10 3
# kbmemfree, kbmemused, %memused, kbbuffers, kbcached, kbcommit, %commit
  • kbmemfree ≈ free 指令 free 欄(不含 buffers/cache)
  • kbmemused ≈ free used 欄(含 buffers/cache)
  • kbcommit:確保不 OOM 所需總記憶體(RAM+Swap)
  • 判讀: %memused > 90% 且 kbcommit 接近物理記憶體 → 擴容或優化

3. 記憶體分頁(-B)


sar -B 10 3
# pgpgin/s, pgpgout/s, fault/s, majflt/s, pgfree/s, pgscank/s, pgscand/s, pgsteal/s, %vmeff
  • fault/s = major + minor faults,高頻 → 記憶體壓力
  • majflt/s > 0 持續 → 磁碟換頁嚴重
  • %vmeff = pgsteal/(pgscank+pgscand),< 30% → 回收效率低

4. I/O 速率(-b)


sar -b 10 3
# tps, rtps, wtps, bread/s, bwrtn/s
  • tps:每秒 I/O 請求數(邏輯請求合併後)
  • bread/s, bwrtn/s:區塊讀寫速率(塊/秒)

5. 裝置詳細(-d -p)


sar -d -p 10 3
# DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
欄位含義告警閾值
await平均 I/O 完成時間(ms),含隊列等待> 20ms (SSD), > 100ms (HDD)
svctm裝置服務時間(ms),不含隊列接近 await → 隊列短;遠小於 await → 隊列長
%utilI/O 請求佔 CPU 時間比> 80% → 裝置飽和
avgqu-sz平均隊列長度> 10 → 擁塞

6. 程序佇列(-q)


sar -q 10 3
# runq-sz, plist-sz, ldavg-1, ldavg-5, ldavg-15
  • runq-sz:執行佇列長度(等待 CPU 的進程數)
  • ldavg-1/5/15:1/5/15 分鐘負載平均
  • 判讀: runq-sz > CPU 核心數 × 2 持續 → CPU 擁塞

7. 交換活動(-W)


sar -W 10 3
# pswpin/s, pswpout/s
  • 持續 > 0 → 記憶體嚴重不足,系統在 Swap 抖動

8. 核心表(-v)


sar -v 10 3
# dentunusd, file-nr, inode-nr, pty-nr
  • file-nr 接近 /proc/sys/fs/file-max → 檔案句柄耗盡
  • inode-nr 接近檔案系統 inode 總數 → inode 耗盡

瓶頸診斷組合策略

疑似瓶頸組合指令分析邏輯
CPUsar -u -q高 %user+%sys + 高 runq-sz = CPU 計算瓶頸;高 %iowait = I/O 導致 CPU 等待
記憶體sar -r -B -W高 %memused + 高 pgpgout/s + 高 pswpout/s = 記憶體不足觸發換頁
I/Osar -b -d -u高 tps/%util + 高 await + 高 %iowait = 磁碟子系統瓶頸
綜合sar -A全維度彙總,建立基準線

資料彙總與自動化

系統內建資料收集(sysstat 套件)


# 設定定時收集(通常已由套件安裝啟用)
cat /etc/cron.d/sysstat
# 10 分鐘收集一次,23:59 彙總日報
# 資料檔位置:/var/log/sa/saDD (DD=日期)

# 讀取歷史資料
sar -u -f /var/log/sa/sa15
sar -d -f /var/log/sa/sa15

自訂長期保存腳本


#!/bin/bash
# daily_sar_archive.sh
DATA_DIR="/var/log/sa_archive"
mkdir -p "$DATA_DIR"
DATE=$(date +%Y%m%d)
sar -A -f /var/log/sa/sa$(date +%d) > "$DATA_DIR/sar_$DATE.txt"
# 保留 90 天
find "$DATA_DIR" -name "sar_*.txt" -mtime +90 -delete

常見問題與進階技巧

問題解決
sar 指令不存在apt install sysstat / yum install sysstat,啟用 systemctl enable --now sysstat
資料檔版本不相容sysstat 版本升級後舊檔可能無法讀取,建議保留文字報表
CPU 核心數顯示異常sar -P ALL 查看各核心,sar -u 顯示 all 平均
虛擬機 %steal 高宿主機資源爭用,遷移或調整配額
需要更細粒度pidstat (進程級), iostat -x (裝置級), mpstat (CPU 核心級)

現代替代工具生態

  • Prometheus + Node Exporter + Grafana: 企業級監控棧、長期儲存、告警、儀表板
  • Netdata: 秒級即時、零配置、美觀儀表板
  • bpftrace/bcc: 核心級動態追蹤、微秒級分析
  • atop: 進程級歷史資料、壓縮二進制日誌、永久儲存

sar 作為系統內建、零依賴、標準化輸出的效能監控基石,掌握其 8 大維度參數組合與判讀標準,能在無外部監控系統的環境中快速完成瓶頸定位。建議將常用組合封裝為別名 alias sar_cpu='sar -u -q 5 5',並配合 sysstat 定時收集建立效能基準線,讓歷史資料成為容量規劃與異常比對的可靠依據。

Copyright © Windows教程網 All Rights Reserved