2021-05-12 14:32:11
RHCE 系列(三):如何使用 Linux 工具集生成和傳送系統活動報告
作為一個系統工程師,你經常需要生成一些顯示系統資源利用率的報告,以便確保:1)正在合理利用系統,2)防止出現瓶頸,3)確保可延伸性,以及其它原因。
RHCE 第三部分:監視 Linux 效能活動報告
除了著名的用於檢測磁碟、記憶體和 CPU 使用率的原生 Linux 工具 - 可以給出很多例子,紅帽企業版 Linux 7 還提供了另外兩個可以為你的報告更多資料的工具套裝:sysstat 和 dstat。
在這篇文章中,我們會介紹兩者,但首先讓我們來回顧一下傳統工具的使用。
原生 Linux 工具
使用 df,你可以報告磁碟空間以及檔案系統的 inode 使用情況。你需要監視這兩者,因為缺少磁碟空間會阻止你儲存更多檔案(甚至會導致系統崩潰),就像耗盡 inode 意味著你不能將檔案連結到對應的資料結構,從而導致同樣的結果:你不能將那些檔案儲存到磁碟中。
#df-h [以人類可讀形式顯示輸出]
#df-h --total [生成總計]
檢查 Linux 總的磁碟使用
#df-i [顯示檔案系統的 inode 數目]
#df-i --total [生成總計]
檢查 Linux 總的 inode 數目
用 du,你可以估計檔案、目錄或檔案系統的檔案空間使用。
舉個例子,讓我們來看看 /home 目錄使用了多少空間,它包括了所有使用者的個人檔案。第一條命令會返回整個 /home 目錄當前使用的所有空間,第二條命令會顯示子目錄的分類列表:
#du-sch /home
#du-sch /home/*
檢查 Linux 目錄磁碟大小
別錯過了:
另一個你工具集中不容忽視的工具就是 vmstat。它允許你檢視進程、CPU 和 記憶體使用、磁碟活動以及其它的大概資訊。
如果不帶引數執行,vmstat 會返回自從上一次啟動後的平均資訊。儘管你可能以這種方式使用該命令有一段時間了,再看一些系統使用率的例子會有更多幫助,例如在例子中定義了時間間隔。
例如
#vmstat510
會每個 5 秒返回 10 個事例:
檢查 Linux 系統效能
正如你從上面圖片看到的,vmstat 的輸出分為很多列:proc(process)、memory、swap、io、system、和 CPU。每個欄位的意義可以在 vmstat man 手冊的 FIELD DESCRIPTION 部分找到。
在哪裡 vmstat 可以派上用場呢?讓我們在 yum 升級之前和升級時檢查系統行為:
#vmstat-a 15
Vmstat Linux 效能監視
請注意當磁碟上的檔案被更改時,活躍記憶體的數量增加,寫到磁碟的塊數目(bo)和屬於使用者進程的 CPU 時間(us)也是這樣。
或者直接儲存一個大檔案到磁碟時(由 dsync 標誌引發):
#vmstat-a 15
#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 手冊。
安裝兩個軟體包:
#yum update &&yum install sysstat dstat
sysstat 主要的組態檔是 /etc/sysconfig/sysstat
。你可以在該檔案中找到下面的引數:
#Howlong to keep log files (in days).
#If value is greater than 28,then log files are kept in
# multiple directories, one for each month.
HISTORY=28
#Compress(using gzip or bzip2) sa andsar files older than (in days):
COMPRESSAFTER=31
#Parametersfor the system activity data collector (see sadc manual page)
# which are used for the generation of log files.
SADC_OPTIONS="-S DISK"
#Compression program to use.
ZIP="bzip2"
sysstat 安裝完成後,/etc/cron.d/sysstat
中會新增和啟用兩個 cron 任務。第一個任務每 10 分鐘執行系統活動計數工具,並在 /var/log/sa/saXX
中儲存報告,其中 XX 是該月的一天。
因此,/var/log/sa/sa05
會包括該月份第 5 天所有的系統活動報告。這裡假設我們在上面的組態檔中對 HISTORY 變數使用預設的值:
*/10 * * * * root /usr/lib64/sa/sa1 11
第二個任務在每天夜間 11:53 生成每日進程計數總結並把它儲存到 /var/log/sa/sarXX
檔案,其中 XX 和之前例子中的含義相同:
5323*** root /usr/lib64/sa/sa2 -A
例如,你可能想要輸出該月份第 6 天從上午 9:30 到晚上 5:30 的系統統計資訊到一個 LibreOffice Calc 或 Microsoft Excel 可以檢視的 .csv 檔案(這樣就可以讓你建立表格和圖片了):
# 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 中斷執行):
# dstat
Linux 磁碟統計檢測
要輸出統計資訊到 .csv 檔案,可以用 -output 標記後面跟一個檔名稱。讓我們來看看在 LibreOffice Calc 中該檔案看起來是怎樣的:
檢測 Linux 統計資訊輸出
為了更多的閱讀體驗,我強烈建議你檢視 dstat 和 sysstat 的 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
本文永久更新連結地址:http://www.linuxidc.com/Linux/2015-11/124769.htm
相關文章