如何在 Linux 上使用 sar 命令

已發表: 2022-06-16
筆記本電腦屏幕上的 linux 終端。
fatmawati achmad zaenuri/Shutterstock.com

sar命令可讓您查看 Linux 計算機不同元素的性能統計信息,包括實時數據和歷史數據。 我們將向您展示如何使用這一重要資源。

相關:如何在 Chromebook 上查看系統性能統計信息

sar 命令

sar命令或系統活動報告器是sysstat包的一部分。 它捕獲一組統計信息,例如 CPU 負載、內存分頁、內存利用率、交換使用情況、網絡 I/O 等等。 它使您能夠以實時快照的形式訪問這些數據(向您顯示計算機上正在發生的事情)和歷史報告。

了解 Linux 和其他類 Unix 系統上的平均負載
相關了解 Linux 和其他類 Unix 系統上的平均負載

它作為守護進程在後台運行,每十分鐘收集一組數據。 當天的數據被寫入一個文本文件。 午夜過後,它被轉換為二進製文件。 這些文件每個月都會被覆蓋,因此它們不會穩定地吞噬您的硬盤容量。

sar命令允許您詢問系統並查看統計信息。 但首先,您需要安裝sysstat包。

安裝 sysstat 包

安裝sysstat非常簡單。 我們使用你的 Linux 系統的包管理器來安裝它,然後使用systemd來啟用和啟動後台守護進程。

要在 Ubuntu 上安裝sysstat ,我們使用 apt:

 sudo apt install sysstat 

在 Ubuntu 上使用 apt 安裝 sysstat

要在 Fedora 上安裝sysstat ,請輸入:

 須藤 dnf 安裝 sysstat 

在 Fedora 上使用 dnf 安裝 sysstat

為了在 Manjaro 上安裝 sysstat,我們使用 pacman:

 sudo pacman -S sysstat 

在 Manjaro 上使用 pacman 安裝 sysstat

廣告

安裝sysstat後,我們需要啟用它,以便它可以在每次啟動計算機時作為後台進程(後台進程)運行,並且我們需要現在啟動它以便我們可以立即使用它。 我們使用systemd實用程序系列的一部分systemctl來啟用和啟動守護進程。

 sudo systemctl 啟用 sysstat 

啟用 sysstat 守護進程

 sudo systemctl start sysstat 

啟動 sysstat 守護進程

要查看您正在使用的sar版本並確保它正在響應,您可以使用-V (版本)選項:

 sar -V 

檢查 sar 的版本

使用 sar 進行實時統計

您可以使用sar來查看您的計算機內正在發生的事情。 而且因為快照就是這樣——特定時間點的播放狀態——有時趨勢更有用,你可以讓sar顯示幾個快照,它們之間有指定的秒數。

中央處理器統計

要查看間隔兩秒的三組 CPU 統計信息,我們將使用此命令,該命令使用-u (CPU) 選項。 請注意,間隔是第一位的。 因此,此命令讀取為“以兩秒為步長顯示三組數據的 CPU 統計信息”。

 sar -u 2 3 

顯示三組 CPU 統計信息

拉伸終端窗口可使表格整齊排列,因此更易於閱讀。

第一列的標題是命令執行的時間。 列中的值是收集每組數據的時間。 其他列是:

  • CPU :CPU 核心的數量,或ALL為所有核心的平均值。
  • %User :在用戶級別(“用戶空間”)運行應用程序所花費的時間百分比。
  • %Nice :在用戶級別運行應用程序所花費的時間百分比,優先級良好。
  • %system :在內核中系統級別執行進程所花費的時間百分比。
  • %iowait :CPU 因等待磁盤 I/O 請求而空閒的時間百分比。
  • %steal :在虛擬機中,這是由於硬件主機的 CPU 正在為不同的虛擬機服務而導致虛擬 CPU 空閒的時間百分比。
  • %idle :CPU 在沒有任何掛起的磁盤 I/O 請求的情況下空閒的時間百分比。
廣告

最後一行是前面幾行的平均值。

要查看特定內核的統計信息,請使用-P (每處理器)選項。 後面是 CPU 內核的編號,或者內核編號的列表或範圍,例如0,1,44-8

此命令查看三組數據,它們之間間隔一秒,對於核心 1。請記住,核心從零開始編號。

 sar -P 1 1 3 

顯示單個內核的 CPU 統計信息

內存分頁統計

-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 

顯示 I/O 傳輸統計信息

這就是列的內容。

  • 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 限制