首頁 > 軟體

RHCE 系列(三):如何使用 Linux 工具集生成和傳送系統活動報告

2020-06-16 17:50:19

作為一個系統工程師,你經常需要生成一些顯示系統資源利用率的報告,以便確保:1)正在合理利用系統,2)防止出現瓶頸,3)確保可延伸性,以及其它原因。

RHCE 第三部分:監視 Linux 效能活動報告

除了著名的用於檢測磁碟、記憶體和 CPU 使用率的原生 Linux 工具 - 可以給出很多例子,紅帽企業版 Linux 7 還提供了另外兩個可以為你的報告更多資料的工具套裝:sysstat 和 dstat。

在這篇文章中,我們會介紹兩者,但首先讓我們來回顧一下傳統工具的使用。

 

原生 Linux 工具

使用 df,你可以報告磁碟空間以及檔案系統的 inode 使用情況。你需要監視這兩者,因為缺少磁碟空間會阻止你儲存更多檔案(甚至會導致系統崩潰),就像耗盡 inode 意味著你不能將檔案連結到對應的資料結構,從而導致同樣的結果:你不能將那些檔案儲存到磁碟中。

  1. #df-h [以人類可讀形式顯示輸出]
  2. #df-h --total [生成總計]

檢查 Linux 總的磁碟使用

  1. #df-i [顯示檔案系統的 inode 數目]
  2. #df-i --total [生成總計]

檢查 Linux 總的 inode 數目

用 du,你可以估計檔案、目錄或檔案系統的檔案空間使用。

舉個例子,讓我們來看看 /home 目錄使用了多少空間,它包括了所有使用者的個人檔案。第一條命令會返回整個 /home 目錄當前使用的所有空間,第二條命令會顯示子目錄的分類列表:

  1. #du-sch /home
  2. #du-sch /home/*

檢查 Linux 目錄磁碟大小

別錯過了:

另一個你工具集中不容忽視的工具就是 vmstat。它允許你檢視進程、CPU 和 記憶體使用、磁碟活動以及其它的大概資訊。

如果不帶引數執行,vmstat 會返回自從上一次啟動後的平均資訊。儘管你可能以這種方式使用該命令有一段時間了,再看一些系統使用率的例子會有更多幫助,例如在例子中定義了時間間隔。

例如

  1. #vmstat510

會每個 5 秒返回 10 個事例:

檢查 Linux 系統效能

正如你從上面圖片看到的,vmstat 的輸出分為很多列:proc(process)、memory、swap、io、system、和 CPU。每個欄位的意義可以在 vmstat man 手冊的 FIELD DESCRIPTION 部分找到。

在哪裡 vmstat 可以派上用場呢?讓我們在 yum 升級之前和升級時檢查系統行為:

  1. #vmstat-a 15

Vmstat Linux 效能監視

請注意當磁碟上的檔案被更改時,活躍記憶體的數量增加,寫到磁碟的塊數目(bo)和屬於使用者進程的 CPU 時間(us)也是這樣。

或者直接儲存一個大檔案到磁碟時(由 dsync 標誌引發):

  1. #vmstat-a 15
  2. #ddif=/dev/zero of=dummy.out bs=1M count=1000 oflag=dsync

Vmstat Linux 磁碟效能監視

在這個例子中,我們可以看到大量的塊被寫入到磁碟(bo),這正如預期的那樣,同時 CPU 處理任務之前等待 IO 操作完成的時間(wa)也增加了。

別錯過: Vmstat – Linux 效能監視

 

其它 Linux 工具

正如本文介紹部分提到的,這裡有其它的工具你可以用來檢測系統狀態和利用率(不僅紅帽,其它主流發行版的官方支援庫中也提供了這些工具)。

sysstat 軟體包包含以下工具:

  • sar (收集、報告、或者儲存系統活動資訊)。
  • sadf (以多種方式顯示 sar 收集的資料)。
  • mpstat (報告處理器相關的統計資訊)。
  • iostat (報告 CPU 統計資訊和裝置以及分割區的 IO統計資訊)。
  • pidstat (報告 Linux 任務統計資訊)。
  • nfsiostat (報告 NFS 的輸出/輸出統計資訊)。
  • cifsiostat (報告 CIFS 統計資訊)
  • sa1 (收集並儲存二進位制資料到系統活動每日資料檔案中)。
  • sa2 (在 /var/log/sa 目錄寫入每日報告)。

dstat 比這些工具所提供的功能更多一些,並且提供了更多的計數器和更大的靈活性。你可以通過執行 yum info sysstat 或者 yum info dstat 找到每個工具完整的介紹,或者安裝完成後分別檢視每個工具的 man 手冊。

安裝兩個軟體包:

  1. #yum update &&yum install sysstat dstat

sysstat 主要的組態檔是 /etc/sysconfig/sysstat。你可以在該檔案中找到下面的引數:

  1. #Howlong to keep log files (in days).
  2. #If value is greater than 28,then log files are kept in
  3. # multiple directories, one for each month.
  4. HISTORY=28
  5. #Compress(using gzip or bzip2) sa andsar files older than (in days):
  6. COMPRESSAFTER=31
  7. #Parametersfor the system activity data collector (see sadc manual page)
  8. # which are used for the generation of log files.
  9. SADC_OPTIONS="-S DISK"
  10. #Compression program to use.
  11. ZIP="bzip2"

sysstat 安裝完成後,/etc/cron.d/sysstat 中會新增和啟用兩個 cron 任務。第一個任務每 10 分鐘執行系統活動計數工具,並在 /var/log/sa/saXX 中儲存報告,其中 XX 是該月的一天。

因此,/var/log/sa/sa05 會包括該月份第 5 天所有的系統活動報告。這裡假設我們在上面的組態檔中對 HISTORY 變數使用預設的值:

  1. */10 * * * * root /usr/lib64/sa/sa1 11

第二個任務在每天夜間 11:53 生成每日進程計數總結並把它儲存到 /var/log/sa/sarXX 檔案,其中 XX 和之前例子中的含義相同:

  1. 5323*** root /usr/lib64/sa/sa2 -A

例如,你可能想要輸出該月份第 6 天從上午 9:30 到晚上 5:30 的系統統計資訊到一個 LibreOffice Calc 或 Microsoft Excel 可以檢視的 .csv 檔案(這樣就可以讓你建立表格和圖片了):

  1. # sadf -s 09:30:00-e 17:30:00-dh /var/log/sa/sa06 --|sed's/;/,/g'> system_stats20150806.csv

你可以在上面的 sadf 命令中用 -j 標記代替 -d 以 JSON 格式輸出系統統計資訊,這當你在 web 應用中使用這些資料的時候非常有用。

Linux 系統統計資訊

最後,讓我們看看 dstat 提供什麼功能。請注意如果不帶引數執行,dstat 預設使用 -cdngy(表示 CPU、磁碟、網路、記憶體頁、和系統統計資訊),並每秒新增一行(可以在任何時候用 Ctrl + C 中斷執行):

  1. # dstat

Linux 磁碟統計檢測

要輸出統計資訊到 .csv 檔案,可以用 -output 標記後面跟一個檔名稱。讓我們來看看在 LibreOffice Calc 中該檔案看起來是怎樣的:

檢測 Linux 統計資訊輸出

為了更多的閱讀體驗,我強烈建議你檢視 dstatsysstat 的 pdf 格式 man 手冊。你會找到其它能幫助你建立自定義的詳細系統活動報告的選項。

別錯過: Sysstat – Linux 的使用活動檢測工具

 

總結

在該指南中我們解釋了如何使用 Linux 原生工具以及 RHEL 7 提供的特定工具來生成系統使用報告。在某種情況下,你可能像依賴最好的朋友那樣依賴這些報告。

你很可能使用過這篇指南中我們沒有介紹到的其它工具。如果真是這樣的話,用下面的表單和社群中的其他成員一起分享吧,也可以是任何其它的建議/疑問/或者評論。

我們期待你的回復。


via: http://www.tecmint.com/linux-performance-monitoring-and-file-system-statistics-reports/

作者:Gabriel Cánepa 譯者:ictlyh 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-11/124769.htm


IT145.com E-mail:sddin#qq.com