1. 程式人生 > >Linux系統狀態檢視工具Sysstat

Linux系統狀態檢視工具Sysstat

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軟體包為基礎的系統;

[[email protected] ~]# apt-get install sysstat


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

[[email protected] ~]# yum install sysstat

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

[[email protected] ~]#rpm -ivh sysstat*.rpm 2.3 Slackware 系統,對於Slackware系統;
[[email protected] ~]# installpkg sysstat*.pkg


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

[[email protected] ~]# tar zxvf sysstat-6.1.2.tar.gz
[[email protected] ~]$ cd sysstat-6.1.2
[[email protected] sysstat-6.1.2]#
[[email protected] sysstat-6.1.2]# make config
[[email protected] sysstat-6.1.2]# make
[[email protected]
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的啟動指令碼;

[[email protected] ~]# touch /etc/rc.d/init.d/sysstat
[[email protected] ~]# 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 - [email protected]
. /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
[[email protected] ~]# chmod 755 /etc/rc.d/init.d/sysstat
[[email protected] ~]# ln -sf /etc/rc.d/init.d/sysstat /etc/init.d/sysstat

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

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

[[email protected] ~]# /etc/rc.d/init.d/sysstat start
下面的方法也行;
[[email protected] ~]# /usr/lib/sa/sa1
[[email protected] ~]# /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工具來檢視;

[[email protected] beinan]# /usr/lib/sa/sadc -
[[email protected] beinan]# ls /var/log/sa 注:列出所有sa目錄下的檔案,根據檔案的時間來判斷哪個檔案是最新的;
[[email protected] beinan]# sar -f /var/log/sa/sa12

[[email protected] beinan]# sadf /var/log/sa/sa12

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

[[email protected] ~]# /usr/lib/sa/sadc  1 10 sa000
[[email protected] ~]# 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 報告系統交換活動的資訊; 每少交換資料的個數;
-W 報告系統交換活動吞吐資訊;
-x 用於監視程序的,在其後要指定程序的PID值;
-X 用於監視程序的,但指定的應該是一個子程序ID;

sar 應用舉例;

例項一: 如果只用sar 命令,sar就是讀取 /var/log/sa目錄下最近系統狀態檔案。

[[email protected] ~]# sar
[[email protected] ~]# sar -A 注:讀取/var/log/sa目錄下所有檔案資料;

如果我們想知道CPU的利用率;動態更新;下面的例子是每秒更新一次資料,總共更新五次;

[[email protected] ~]# sar -u  1 5
Linux 2.6.15-1.2054_FC5 (localhost.localdomain)         2006年05月12日

時間                      CPU		  利用率		nice值     系統佔用		IO佔用			空閒
11時19分34秒       CPU     %user     %nice   %system   %iowait     %idle
11時19分35秒       all      2.97      0.00      0.00      0.00     97.03
11時19分36秒       all     11.11      0.00      9.09      0.00     79.80
11時19分37秒       all     21.78      0.00      6.93      0.00     71.29
11時19分38秒       all     15.00      0.00      0.00      0.00     85.00
11時19分39秒       all      8.00      0.00      0.00      0.00     92.00
Average:          all     11.78      0.00      3.19      0.00     85.03

註解:

CPU:表示機器內所有的CPU;
%user 表示CPU的利用率;
%nice 表示CPU在使用者層優先順序的百分比,0表示正常;
%system 表示當系統執行時,在使用者應用層上所佔用的CPU百分比;
%iowait 表示請求硬碟I/0資料流出時,所佔用CPU的百分比;
%idle 表示空閒CPU百分比,值越大系統負載越低;

您可以CPU利用率的動態資訊輸出到一個文字檔案中,然後通過more 來檢視。

[[email protected] ~]# sar -u 1 5 > sar000.txt
[[email protected] ~]# more sar000.txt

也可以輸出到一個二進位制的檔案中,然後通過sar來檢視;

[[email protected] ~]# sar -u 1 5 -o sar002
[[email protected] ~]# sar -f sar002

注:如果您把資料通過-o filename 輸出到一個二進位制的檔案中,是不能用檔案內容檢視工具more 、less或cat來檢視的,應該用sar工具來檢視,要加-f引數;

例項二:檢視網路裝置的吞吐情況;

比如我們讓資料每秒更新一次,總共更新十次;

[[email protected] ~]# sar -n DEV 2 5
時間 IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s
第一欄位:時間;
IFACE:裝置名;
rxpck/s:每秒收到的包;
rxbyt/s:每秒收到的所有包的體積;
txbyt/s:每秒傳輸的所有包的體積;
rxcmp/s:每秒收到資料切割壓縮的包總數;
txcmp/s :每秒傳輸的資料切割壓縮的包的總數;
rxmcst/s: 每秒收到的多點傳送的包;

如果我們從事提取eth0裝置(也就是網絡卡eth0)的資訊;我們應該用grep 來過濾。然後再顯示出來;

[[email protected] ~]# sar -n DEV 2 5 |grep eth0
11時52分37秒 eth0 1.00 1.00 97.51 97.51 0.00 0.00 0.00
11時52分39秒 eth0 1.01 1.01 98.49 98.49 0.00 0.00 0.00
11時52分41秒 eth0 1.00 1.00 98.00 98.00 0.00 0.00 0.00
11時52分43秒 eth0 1.00 1.00 98.00 98.00 0.00 0.00 0.00
11時52分45秒 eth0 1.00 1.00 98.00 98.00 0.00 0.00 0.00
Average: eth0 1.00 1.00 98.00 98.00 0.00 0.00 0.00

如果想知道網路裝置錯誤報告,也就就是用來檢視裝置故障的。應該用EDEV;比如下面的例子;

[[email protected] ~]# sar -n EDEV 2 5


3.3 iostat

iostat 是用來顯示 系統即時系統,比如CPU使用率,硬碟裝置的吞吐率;

[[email protected] ~]# iostat
Linux 2.6.15-1.2054_FC5 (localhost.localdomain)   2006年05月12日

avg-cpu:  %user   %nice %system %iowait   %idle
           7.24    0.00    0.99    0.35   91.43

Device:   tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
hda      1.46        28.43        21.43     710589     535680


3.4 mpstat

mpstat 提供多處理器系統中的CPU的利用率的統計;mpstat 也可以加引數,用-P來指定哪個 CPU,處理器的ID是從0開始的。下面的例子是檢視兩個處理器,每二秒資料更新一次,總共要顯示10次資料;

[[email protected] ~]# mpstat -P 0 2 10 注:檢視第一個CPU
[[email protected] ~]# mpstat -p 1 2 10 注:檢視第二個CPU
</code >
<code>
[[email protected] ~]# mpstat 2 10 注:檢視所有CPU;


3.5 sdaf

sdaf 能從二進位制檔案中提取sar所收集的資料;這個大家知道就行了。顯示的並不是友好的格式;

[[email protected] ~]# sar -u 2 5 -o sar003
[[email protected] ~]# sadf sar003

相對來說,用sar來讀取輸出檔案的內容更好;比如下面的;

[[email protected] ~]# sar -f sar003


4、 與Sysstat相似工具;


4.1 程序管理工具;

程序管理工具,包括ps 、pgrep、top、kill 、killall、pkill 等,請參考 《 Linux 程序管理》


4.2 記憶體使用率檢視工具;

記憶體使用量 free

free 工具既能檢視實體記憶體,也能檢視虛擬記憶體的用量;

[[email protected] ~]# free

如果顯示以單位M,則加-m引數;

[[email protected] ~]# free -m
             total used free shared buffers cached
Mem: 724 713 11 0 24 290
-/+ buffers/cache: 398 326
Swap: 800 0 800


vmstat 即時顯示記憶體工具;

vmstat 是一個即時顯示記憶體使用情況的工具;

vmstat 使用方法:

vmstat [-V] [-n] [delay [count]]
              -V 顯示vmstat的版本;
              -n causes the headers not to be reprinted regularly.
              -a 顯示所有啟用和未啟用記憶體的狀態;print inactive/active page stats.
              -d 顯示硬碟統計資訊;prints disk statistics
              -D 顯示硬碟分割槽表;prints disk table
              -p 顯示硬碟分割槽讀寫狀態等;prints disk partition statistics
              -s 顯示記憶體使用情況;prints vm table
              -m prints slabinfo
              -S 定義單位,k K
              delay 是兩次重新整理時間間隔;
               單位體積: k:1000 K:1024 m:1000000 M:1048576 (預設是 K)
              count 重新整理次數;


5、 關於本文;

我在2004年10月30日,寫過一篇Sysstat 的文章 ,當時也並沒有把Sysstat搞的太清楚,只是會簡單的操作,原文可參見《系統維護常用工具sysstat》

今天重寫此文,主要是以前寫的比較差,所以對一些引數進行了測試、考證,我想這樣應該對新手方便一點。

本文也並不是大而全的man ,有些引數怎麼理解,還得依靠我們自己。我認為掌握一些常用的引數就行,沒有必要把一個命令研究的多透徹。有些東西,如果我們用不著,學了也沒有什麼用,這就是學為所用吧。


6、後記;


7、 參考文件;


8、 相關文件;

-----
收藏到CSDN技術網摘|收藏本文至 del.icio.us|收藏此頁到365Key

By eygle on 2007-07-13T17:35 | Posted to 軟體工具 |


站內相關主題:
網上相關主題:
Google

留言 (0)

發表留言:



Remember Me?
(輸入驗證碼後方可評論,謝謝支援)
 

相關推薦

Linux系統狀態檢視工具Sysstat

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

Linux系統備份還原工具1(DD)(應用實例)

環境 mnt 之前 air 更換 ibm grub resize 方法 DD使用教程:http://www.cnblogs.com/EasonJim/p/7442223.html 以下實例沒經過大量測試,可能在一些機器上不會有效。 一般圍繞以下幾點進行設置: 1、dd

Linux系統備份還原工具2(TAR/壓縮工具

file 將在 ubunt 決定 mmu import zip2 comm 文件和目錄 相比DD備份還原工具,TAR壓縮還原工具更加小巧和靈活,但是不能備份MBR。當然可以通過重新安裝GRUB來解決MBR的這一問題。同時,TAR的做法也是官方推薦的。 註意:一個硬盤啟動時

Linux系統備份還原工具4(rsync/數據同步工具

nor 出現問題 tab mman 文件格式 部署 ubunt 數據 logs rsync即是能備份系統也是數據同步的工具。 在Jenkins上可以使用rsync結合SSH的免密登錄做數據同步和分發。這樣一來可以達到部署全命令化,不需要依賴任何插件去實現。 命令參考:h

rsync通過服務同步/Linux系統日誌/screen工具

進程 incr allow 失敗 置配 配件 ins 二進制文件 auto rsync通過服務同步 這種方式可以理解為在遠程主機上建立一個rsync的服務器,在服務器上配置好rsync的各種應用,然後將本機作為rsync的一個客戶端連接的rsync服務器。下面就介紹一下如何

10.32/10.33 rsync通過服務同步 10.34 linux系統日誌 screen工具

Linux系統日誌 weekly tac conn details 進程 read drop rsyslog 通過後臺服務的方式在遠程主機上建立一個rsync的服務器,在服務器上配置好rsync的各種應用,然後將本機作為rsync的一個客戶端連接遠程的rsync服務器。在1

Linux系統字符集檢視及修改

一·檢視字符集 字符集在系統中體現形式是一個環境變數,以CentOS6.5為例,其檢視當前終端使用字符集的方式可以有以下幾種方式: 1、[[email protected] ~]# echo $LANG zh_CN.GB18030 2、[[email protected]

Linux系統IO分析工具之iotop常用引數介紹

                     Linux系統IO分析工具之iotop常用引數介紹                                               作者:尹正傑 版權宣告:原創作品,謝絕轉載!否則將追究法律責任。       W

Linux系統IO分析工具之iotstat常用引數介紹

                Linux系統IO分析工具之iotstat常用引數介紹                                            作者:尹正傑 版權宣告:原創作品,謝絕轉載!否則將追究法律責任。       1>.安裝

連線Linux系統的終端工具MobaXTerm

從今天開始,我們要開始Linux之路,首先第一步就是下載工具MobaXTerm,網上隨便百度一下,安裝也是傻白甜操作。 我們就直接開始建立連線,首先開啟工具,按如下提示連線上Linux環境。 連線完應該看到這樣的連結標誌,這樣即表示連線成功啦。下面我們就愉快的開始Linux學

如何在Linux系統檢視CPU、系統核數、執行緒數等資訊

檢視系統的CPU資訊時,需要注意的引數是:系統中有幾顆CPU,每顆CPU中有幾顆核心,每個CPU有幾個執行緒。 通過/proc/cpuinfo中可以看到系統中總計有幾顆CPU,每顆CPU有幾個核心,系統總計有多少CPU執行緒。 引數的意義: model name:每顆CPU的型號。  

一文詳解Linux系統常用監控工具

本文共 1329字,閱讀大約需要 3分鐘 ! 概 述 本文主要記錄一下 Linux系統上一些常用的系統監控工具,非常好用。正所謂磨刀不誤砍柴工,花點時間總結一下是值得的! 本文內容腦圖如下: top 命令 top 命令我想大家都挺熟悉吧!Linux 下的 t

系統狀態檢視小結

監控系統狀態  w  ,  vmstat vmstat 1  (表示每秒顯示系統當前的狀態) vmstat重點掌握 r,b,si,so,bi,bo,wa r:表示執行和等待CPU時間片的程序數,如果長期大於伺服器CPU的個數,則說明CPU不夠用了; b:表示等待資源的程

有關Linux系統的常用工具介紹

           通常,LInux系統中用到的基本工具有Vim編輯器,gcc編譯器等。在本文中我將敘述有關Vim編輯器和gcc編譯器的相關知識。           首先敘述一下Vim編輯器, VIm編輯器一般有13種模式,但常見的只有3種:           (1

linux系統和安裝工具

虛擬機器上做題時發現地址有些問題,在真機上沒有,決定主機上裝個linux。 碰到的一些問題,遇到問題更新在這,以防忘了: 1.用ultraiso照網上的教程做啟動盤時選usb-udd+時製作成功但啟動不了,換成raw可以了。 2.裝拼音 3.pwntools,先裝pip:sudo apt i

linux系統檢視硬體資訊

一:檢視CPU more /proc/cpuinfo | grep "model name" grep "model name" /proc/cpuinfo 如果覺得需要看的更加舒服 grep "model name" /proc/cpuinfo | cut -f2 -d:

Linux系統下常用工具——自用

Linux系統下的常用工具 Linux系統下的常用指令 更改使用者許可權和組許可權(這一操作得在root使用者下進行) 迭代的刪除檔案 程式碼的編譯與執行(利用gcc) 檢視當前目錄的完整路徑

Linux系統Centos檢視IP地址,不顯示IP地址或者顯示127.0.0.1

1、桌面介面 右上角有個電腦的圖示,滑鼠懸停會顯示no network connect 點選一下圖示,選擇連線的網路則ok 2、命令列介面 在命令列介面輸入 vi  /etc/sysconfig/network-scripts/ifcfg-eth0  點選鍵盤的i或作a

Linux系統資源檢視 之 資源資訊

Linux系統資源檢視 之 資源資訊 1. 系統 版本資訊 核心版本 使用 uname 命令: -a : 檢視所有系統資訊 -r : 檢視核心版本資訊 -s : 檢視核心名稱

11款面向Linux系統的備份工具,超實用!

個人計算機或者伺服器上的備份對於防止資料丟失很重要。系統管理員每天需要處理大量的企業級資料,甚至個人計算機上的資料,所以要深入瞭解不同的備份工具。經常備份計算機上的資料是個好的做法,它可以手動完成,也可以設定成自動執行。許多備份工具擁有不同的功能特性,讓使用者可以配置備份型別