系統狀態檢視工具systat(轉)

gugu99發表於2007-08-10
系統狀態檢視工具systat(轉)[@more@]

  1、關於 Sysstat;

  Sysstat 是一個軟體包,包含監測系統效能及效率的一組工具,這些工具對於我們收集系統效能資料,比如CPU使用率、硬碟和網路吞吐資料,這些資料的收集和分析,有利於我們判斷系統是否正常執行,是提高系統執行效率、安全執行伺服器的得力助手;

  Sysstat 軟體包整合如下工具:

  * iostat 工具提供CPU使用率及硬碟吞吐效率的資料;

  * mpstat 工具提供單個處理器或多個處理器相關資料;

  * sar 工具負責收集、報告並儲存系統活躍的資訊;

  * sa1 工具負責收集並儲存每天系統動態資訊到一個二進位制的檔案中。它是透過計劃任務工具cron來執行,

  是為sadc所設計的程式前端程式;

  * sa2 工具負責把每天的系統活躍性息寫入總結性的報告中。它是為sar所設計的前端 ,要透過cron來呼叫

  * sadc 是系統動態資料收集工具,收集的資料被寫一個二進位制的檔案中,它被用作sar工具的後端;

  * sadf 顯示被sar透過多種格式收集的資料;

  2、安裝 Sysstat和執行;

  對於大多數系統,都有這個軟體包,軟體名以sysstat開頭。我們可以透過網路安裝它;

  2.1 對於Debian或deb軟體包為基礎的系統;

  [root@localhost ~]# apt-get install sysstat

  2.2 Fedora 系統或以RPM包管理的系統;

  [root@localhost ~]# yum install sysstat

  如果是RPM包,請用下面的命令來安裝;

  [root@localhost ~]#rpm -ivh sysstat*.rpm

  如果您想了解yum 和rpm 軟體包管理工具,請參考:《Fedora / Redhat 軟體包管理指南》

  2.3 Slackware 系統,對於Slackware系統;

  [root@localhost ~]# installpkg sysstat*.pkg

  2.4 透過原始碼包編譯安裝;

  如果您是透過原始碼包安裝,請到官方下源原始碼包 ,目前最新版本是 sysstat-6.1.2;

  如果您想了想一下什麼是原始碼包,請參考:《如何編譯安裝原始碼包軟體》

  [root@localhost ~]# tar zxvf sysstat-6.1.2.tar.gz

  [beinan@localhost ~] $ cd sysstat-6.1.2

  [beinan@localhost sysstat-6.1.2]#

  [beinan@localhost sysstat-6.1.2]# make config

  [beinan@localhost sysstat-6.1.2]# make

  [beinan@localhost sysstat-6.1.2]# make install

  2.5 關於 Sysstat 計劃任務;

  如果您想得到Sysstat工具集所收集的系統資訊自動存為某個檔案中,你必須透過cron 為 sa1 和sa2 做計劃任務。我們可以透過修改使用者的crontab。在預設的情況下,Sysstat歷史資訊將被存放在/var/log/sa檔案中。如果想定義自己的計劃任務,請參考:《計劃任務工具 cron 的配置和說明》

  在root使用者,透過 crontab -e 來新增下面的一段;

  # 8am-7pm activity reports every 10 minutes during weekdays

  0 8-18 * * 1-5 /usr/lib/sa/sa1 600 6 &

  # 7pm-8am activity reports every hour during weekdays

  0 19-7 * * 1-5 /usr/lib/sa/sa1 &

  # Activity reports every hour on Saturday and Sunday

  0 * * * 0,6 /usr/lib/sa/sa1 &

  # Daily summary prepared at 19:05 5 19 * * * /usr/lib/sa/sa2 -A &

  建立Sysstat的啟動指令碼;

  [root@localhost ~]# touch /etc/rc.d/init.d/sysstat

[root@localhost ~]# vi /etc/rc.d/init.d/sysstat

#!/bin/sh

# Begin  $rc_base/init.d/sysstat

# Based on sysklogd script from LFS-3.1 and earlier.

# Rewritten by Gerard Beekmans - gerard@linuxfromscratch.org

. /etc/sysconfig/rc

.  $rc_functions

case " $1" in

      start)

           echo "Calling the system activity data collector (sadc)..."

           /usr/lib/sa/sadc -F -L -

           evaluate_retval

           ;;

      *)

           echo "Usage:  $0 start"

           exit 1

           ;;

esac

# End  $rc_base/init.d/sysstat

[root@localhost ~]# chmod 755 /etc/rc.d/init.d/sysstat

[root@localhost ~]# ln -sf /etc/rc.d/init.d/sysstat /etc/init.d/sysstat

  有了Sysstat的守護程式,這樣我們開機後,Sysstat的守護程式,就時時刻刻的為我們服務了。sa 、sa1或sa2自動把資訊存在 /var/log/sa目錄的二進位制檔案中,我們可以透過sar工具來提取這些系統資訊的歷史;

  當然我們也可以透過手動的方法來開啟Sysstat的守護程式,也就是我們前面所製作的sysstat;

  [root@localhost ~]# /etc/rc.d/init.d/sysstat start

  下面的方法也行;

  [root@localhost ~]# /usr/lib/sa/sa1

  [root@localhost ~]# /usr/lib/sa/sa2

  3.Sysstat 工具集介紹;

  3.1 sadc 工具,

  sadc 位於 /usr/lib/sa目錄中,如果你沒有設定可執行路徑,要用絕對路徑來執行比較方便 ,/usr/lib/sa/sadc;sadc 是把資料寫在一個二進位制的檔案中,如果想檢視資料內容,需要用sadf工具來顯示;

  sadc 的用法;

  /usr/lib/sa/sadc [ -d ] [ -F ] [ -I ] [ -L ] [ -V ] [ interval [ count ] ] [ outfile ]

  引數說明:

  -d 報告硬碟設定的相關統計;

  -F 強制把資料寫入檔案;

  -I 報告所有系統中斷資料;

  interval 表示時間間隔,單位是秒,比如3 ;

  count 統計資料的次數,也是一個數字;

  outfile 輸出統計到outfile檔案;

  注意:此工具中的引數都是可選的,如果沒有指定任何引數,比如 /usr/lib/sa/sadc - ,則會輸出資料到 /var/log/sa/ 目錄下的一個檔案中。我們要透過sadf 或sar工具來檢視;

  [root@localhost beinan]# /usr/lib/sa/sadc -

  [root@localhost beinan]# ls /var/log/sa 注:列出所有sa目錄下的檔案,根據檔案的時間來判斷哪個檔案是最新的;

  [root@localhost beinan]# sar -f /var/log/sa/sa12

  或

  [root@localhost beinan]# sadf /var/log/sa/sa12

  舉例:我們想把sadc收集到的資料寫到一個指定的檔案中;

  [root@localhost ~]# /usr/lib/sa/sadc 1 10 sa000

[root@localhost ~]# sar -f sa000

Linux 2.6.15-1.2054_FC5 (localhost.localdomain)      2006年05月12日

09時15分30秒    CPU   %user   %nice  %system  %iowait   %idle

09時15分31秒    all    3.00    0.00    0.00    1.00   96.00

09時15分32秒    all    0.00    0.00    0.00    0.00  100.00

09時15分33秒    all    0.00    0.00    0.00    0.00  100.00

09時15分34秒    all    0.00    0.00    0.00    0.00  100.00

09時15分35秒    all    0.00    0.00    0.00    0.00  100.00

09時15分36秒    all    0.00    0.00    0.00    0.00  100.00

09時15分37秒    all    0.00    0.00    0.00    0.00  100.00

09時15分38秒    all    0.00    0.00    0.00    0.00  100.00

09時15分39秒    all    0.00    0.00    0.00    0.00  100.00

Average:      all    0.33    0.00    0.00    0.11   99.56

  註解:我們用sadc 收集系統動態資料,讓它收集1秒之內的10次動態資訊; 然後透過sar 工具來檢視系統的狀態。也可以用 sadf 來檢視所收集的資料,但不是太直觀。您自己嘗試一下看看。檢視sa000檔案,用 sadf sa000 ;

  3.2 sar 工具;

  sar 工具比較強大,既能收集系統CPU、硬碟、動態資料,也能顯示動態顯示,更能檢視二進位制資料檔案;sar 的應用比較多,而且也比較複雜,資料更為精確。我們只瞭解一下常用的內容就行,大多數內容我們瞭解就行;

  用法:

  sar [引數選項]

  引數說明:

  -A 顯示所有歷史資料,透過讀取/var/log/sar 目錄下的所有檔案,並把它們分門別類的顯示出來;

  -b 透過裝置的I/O中斷讀取設定的吞吐率;

  -B 報告記憶體或虛擬記憶體交換統計;

  -c 報告每秒建立的程式數;

  -d 報告物理塊裝置(儲存裝置)的寫入、讀取之類的資訊,如果直觀一點,可以和p引數共同使用,-dp

  -f 從一個二進位制的資料檔案中讀取內容,比如 sar -f filename

  -i interval 指定資料收集的時間,時間單位是秒;

  -n 分析網路裝置狀態的統計,後面可以接的引數有 DEV、EDEV、NFS、NFSD、SOCK等。比如-n DEV

  -o 把統計資訊寫入一個檔案,比如 -o filename ;

  -P 報告每個處理器應用統計,用於多處理器機器,並且啟用SMP核心才有效;

  -p 顯示友好裝置名字,以方便檢視,也可以和-d 和-n 引數結合使用,比如 -dp 或-np

  -r 記憶體和交換區佔用統計;

  -R

  -t 這個選項對從檔案讀取資料有用,如果沒有這個引數,會以本地時間為標準 讀出;

  -u 報告CPU利用率的引數;

  -v 報告inode, 檔案或其它核心表的資源佔用資訊;

  -w 報告系統交換活動的資訊; 每少交換資料的個數?

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-939798/,如需轉載,請註明出處,否則將追究法律責任。

相關文章