RHCE 系列(三):如何使用 Linux 工具集生成和發送系統活動報告
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 會返回自從上一次啟動後的平均信息。儘管你可能以這種方式使用該命令有一段時間了,再看一些系統使用率的例子會有更多幫助,例如在例子中定義了時間間隔。
例如
# vmstat 5 10
會每個 5 秒返回 10 個事例:
檢查 Linux 系統性能
正如你從上面圖片看到的,vmstat 的輸出分為很多列:proc(process)、memory、swap、io、system、和 CPU。每個欄位的意義可以在 vmstat man 手冊的 FIELD DESCRIPTION 部分找到。
在哪裡 vmstat 可以派上用場呢?讓我們在 yum 升級之前和升級時檢查系統行為:
# vmstat -a 1 5
Vmstat Linux 性能監視
請注意當磁碟上的文件被更改時,活躍內存的數量增加,寫到磁碟的塊數目(bo)和屬於用戶進程的 CPU 時間(us)也是這樣。
或者直接保存一個大文件到磁碟時(由 dsync 標誌引發):
# vmstat -a 1 5
# dd if=/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
。你可以在該文件中找到下面的參數:
# How long 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 and sar files older than (in days):
COMPRESSAFTER=31
# Parameters for 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 1 1
第二個任務在每天夜間 11:53 生成每日進程計數總結並把它保存到 /var/log/sa/sarXX
文件,其中 XX 和之前例子中的含義相同:
53 23 * * * 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
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive