如何在 Linux 上使用 sar 命令
已發表: 2022-06-16 sar
命令可讓您查看 Linux 計算機不同元素的性能統計信息,包括實時數據和歷史數據。 我們將向您展示如何使用這一重要資源。
相關:如何在 Chromebook 上查看系統性能統計信息
sar 命令
sar
命令或系統活動報告器是sysstat
包的一部分。 它捕獲一組統計信息,例如 CPU 負載、內存分頁、內存利用率、交換使用情況、網絡 I/O 等等。 它使您能夠以實時快照的形式訪問這些數據(向您顯示計算機上正在發生的事情)和歷史報告。
它作為守護進程在後台運行,每十分鐘收集一組數據。 當天的數據被寫入一個文本文件。 午夜過後,它被轉換為二進製文件。 這些文件每個月都會被覆蓋,因此它們不會穩定地吞噬您的硬盤容量。
sar
命令允許您詢問系統並查看統計信息。 但首先,您需要安裝sysstat
包。
安裝 sysstat 包
安裝sysstat
非常簡單。 我們使用你的 Linux 系統的包管理器來安裝它,然後使用systemd
來啟用和啟動後台守護進程。
要在 Ubuntu 上安裝sysstat
,我們使用 apt:
sudo apt install sysstat
要在 Fedora 上安裝sysstat
,請輸入:
須藤 dnf 安裝 sysstat
為了在 Manjaro 上安裝 sysstat,我們使用 pacman:
sudo pacman -S sysstat
安裝sysstat
後,我們需要啟用它,以便它可以在每次啟動計算機時作為後台進程(後台進程)運行,並且我們需要現在啟動它以便我們可以立即使用它。 我們使用systemd
實用程序系列的一部分systemctl
來啟用和啟動守護進程。
sudo systemctl 啟用 sysstat
sudo systemctl start sysstat
要查看您正在使用的sar
版本並確保它正在響應,您可以使用-V
(版本)選項:
sar -V
使用 sar 進行實時統計
您可以使用sar
來查看您的計算機內正在發生的事情。 而且因為快照就是這樣——特定時間點的播放狀態——有時趨勢更有用,你可以讓sar
顯示幾個快照,它們之間有指定的秒數。
中央處理器統計
要查看間隔兩秒的三組 CPU 統計信息,我們將使用此命令,該命令使用-u
(CPU) 選項。 請注意,間隔是第一位的。 因此,此命令讀取為“以兩秒為步長顯示三組數據的 CPU 統計信息”。
sar -u 2 3
拉伸終端窗口可使表格整齊排列,因此更易於閱讀。
第一列的標題是命令執行的時間。 列中的值是收集每組數據的時間。 其他列是:
- CPU :CPU 核心的數量,或
ALL
為所有核心的平均值。 - %User :在用戶級別(“用戶空間”)運行應用程序所花費的時間百分比。
- %Nice :在用戶級別運行應用程序所花費的時間百分比,優先級良好。
- %system :在內核中系統級別執行進程所花費的時間百分比。
- %iowait :CPU 因等待磁盤 I/O 請求而空閒的時間百分比。
- %steal :在虛擬機中,這是由於硬件主機的 CPU 正在為不同的虛擬機服務而導致虛擬 CPU 空閒的時間百分比。
- %idle :CPU 在沒有任何掛起的磁盤 I/O 請求的情況下空閒的時間百分比。
最後一行是前面幾行的平均值。
要查看特定內核的統計信息,請使用-P
(每處理器)選項。 後面是 CPU 內核的編號,或者內核編號的列表或範圍,例如0,1,4
或4-8
。
此命令查看三組數據,它們之間間隔一秒,對於核心 1。請記住,核心從零開始編號。
sar -P 1 1 3
內存分頁統計
-B
(分頁)選項使sar
顯示與內存分頁到硬盤驅動器相關的統計信息。 我們將要求兩組信息,它們之間有五秒鐘的時間。
sar -B 5 2
這些列包含以下信息。
- pgpgin/s :系統每秒從硬盤中調入(檢索)的千字節總數。
- pgpgout/s :系統每秒調出到硬盤的千字節總數。
- fault/s :系統每秒產生的次要和主要頁面錯誤數。
- majflt/s :系統每秒發生的重大故障數,需要從磁盤加載內存頁面。
- pgfree/s :系統每秒放置在空閒列表中的頁數。
- pgscank/s :內存管理系統
kswapd
守護進程每秒掃描的頁數。 - pgscand/s :每秒直接掃描的頁數。
- pgsteal/s :系統每秒從緩存中回收的頁數。
- %vmeff :計算為
pgsteal
/pgscan
,這是頁面回收效率的一個指標。
I/O 傳輸速率
要查看 I/O 和傳輸率統計信息,請使用-b
(注意,小寫“b”)選項。 我們要求三組數據,它們之間有四秒。
sar -b 4 3
這就是列的內容。
- tps :每秒向物理設備發出的傳輸請求總數。 請注意,這是請求的計數。 他們可能並非都成功了。
- rtps :每秒向物理設備發出的讀取請求總數。
- wtps :每秒向物理設備發出的寫入請求總數。
- dtps :每秒向物理設備發出的丟棄請求總數。
- bread/s :從物理設備讀取的數據總量。 該數字以每秒 512 字節的塊的形式給出。
- bwrtn/s :每秒寫入物理設備的數據總量(以塊為單位)。
- bdscd/s :每秒丟棄的數據總量,以塊為單位。
您可以選擇查看更多類別的信息。 它們都以相同的方式使用。 您還可以使用-A
(all) 選項來查看sar
可以扔給您的所有內容的完整轉儲。
查看 sar 手冊頁以獲取完整列表。
相關:什麼是讀/寫速度,它們為什麼重要?
使用 sar 進行歷史統計
要查看任何歷史數據,只需將-s
(開始)和-e
(結束)選項 time 添加到任何常用的sar
命令。 時間以 24 小時製表示。
要查看今天06:30 到 07:15 之間的 CPU 負載情況,我們將使用此命令。
sar -u -s 06:30:00 -e 07:15:00
要查看前一天的情況,請使用數字作為選項標誌。 數字表示報告的日期。 -1
選項表示昨天, -2
選項表示兩天前,依此類推。
讓我們使用昨天的數據在 13:00 到 13:00 之間生成一個報告。
sar -u -1 -s 13:00:00 -e 13:30:00
指定您希望報告的日期的另一種方法是在命令行上使用當天數據文件的名稱。 我們使用-f
(文件名)選項來做到這一點。
每日文件稱為“saXX”,其中 XX 替換為月份中的某天。 它們是在 Linux 計算機的日誌文件夾中創建的。 sar
日誌文件夾可能稱為“/var/log/sa/”或“/var/log/sysstat/”。
在 Ubuntu 上,它是“/var/log/sysstat/”,因此我們查看本月 21 日 14:00 到 14:30 之間的 CPU 使用率的命令格式如下所示:
sar -u -s 14:00:00 -e 14:30:00 -f /var/log/sysstat/sa21
信息就是力量
sar
肯定會為您提供足夠的信息,以便您對計算機的性能做出明智的決定。
如果您擔任支持角色 - 或者您是朋友和家人的技術支持 - 能夠查看歷史數據是開始深入研究今天報告給您但實際上昨天發生的問題的好方法。 或者上週。
相關:系統慢? 如何查看 Linux 是否受內存、CPU 或 IO 限制