- 論壇徽章:
- 0
|
Linux系統(tǒng)狀態(tài)查看工具Sysstat出處:
http://www.eygle.com/digest
[
軟件工具
]
鏈接:
http://www.eygle.com/digest/2007/07/linux_sysstat.html
« DS8000,DMX3,HDS USP究竟哪個(gè)性能會(huì)表現(xiàn)的好些?
|
Digest首頁
|
Linux Memory Management or 'Why is there no free RAM?' »
站內(nèi)相關(guān)文章|Related Articles
用SecureCRT來上傳和下載數(shù)據(jù)
了解Linux的時(shí)鐘
vmstat 命令的用法說明
Linux Memory Management or 'Why is there no free RAM?'
The structure of the Reiser file system
Linux中如何校驗(yàn)?zāi)男┒丝谡诒O(jiān)聽
Linux中如何替換文件名中的空格
Linux/Unix下如何刪除具有特殊字符的文件
原文鏈接:
http://www.linuxsir.org/main/?q=node/211
1、關(guān)于 Sysstat;
Sysstat 是一個(gè)軟件包,包含監(jiān)測(cè)系統(tǒng)性能及效率的一組工具,這些工具對(duì)于我們收集系統(tǒng)性能數(shù)據(jù),比如CPU使用率、硬盤和網(wǎng)絡(luò)吞吐數(shù)據(jù),這些數(shù)據(jù)的收集和分析,有利于我們判斷系統(tǒng)是否正常運(yùn)行,是提高系統(tǒng)運(yùn)行效率、安全運(yùn)行服務(wù)器的得力助手;
Sysstat 軟件包集成如下工具:
* iostat 工具提供CPU使用率及硬盤吞吐效率的數(shù)據(jù);
* mpstat 工具提供單個(gè)處理器或多個(gè)處理器相關(guān)數(shù)據(jù);
* sar 工具負(fù)責(zé)收集、報(bào)告并存儲(chǔ)系統(tǒng)活躍的信息;
* sa1 工具負(fù)責(zé)收集并存儲(chǔ)每天系統(tǒng)動(dòng)態(tài)信息到一個(gè)二進(jìn)制的文件中。它是通過計(jì)劃任務(wù)工具cron來運(yùn)行,
是為sadc所設(shè)計(jì)的程序前端程序;
* sa2 工具負(fù)責(zé)把每天的系統(tǒng)活躍性息寫入總結(jié)性的報(bào)告中。它是為sar所設(shè)計(jì)的前端 ,要通過cron來調(diào)用
* sadc 是系統(tǒng)動(dòng)態(tài)數(shù)據(jù)收集工具,收集的數(shù)據(jù)被寫一個(gè)二進(jìn)制的文件中,它被用作sar工具的后端;
* sadf 顯示被sar通過多種格式收集的數(shù)據(jù);
2、安裝 Sysstat和運(yùn)行;
對(duì)于大多數(shù)系統(tǒng),都有這個(gè)軟件包,軟件名以sysstat開頭。我們可以通過網(wǎng)絡(luò)安裝它;
2.1 對(duì)于Debian或deb軟件包為基礎(chǔ)的系統(tǒng);
[root@localhost ~]# apt-get install sysstat
2.2 Fedora 系統(tǒng)或以RPM包管理的系統(tǒng);
[root@localhost ~]# yum install sysstat
如果是RPM包,請(qǐng)用下面的命令來安裝;
[root@localhost ~]#rpm -ivh sysstat*.rpm
如果您想了解yum 和rpm 軟件包管理工具,請(qǐng)參考:
《Fedora / Redhat 軟件包管理指南》
2.3 Slackware 系統(tǒng),對(duì)于Slackware系統(tǒng);
[root@localhost ~]# installpkg sysstat*.pkg
2.4 通過源碼包編譯安裝;
如果您是通過源碼包安裝,請(qǐng)到官方下源源碼包
http://perso.wanadoo.fr/sebastien.godard
,目前最新版本是 sysstat-6.1.2;
如果您想了想一下什么是源碼包,請(qǐng)參考:
《如何編譯安裝源碼包軟件》
[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 關(guān)于 Sysstat 計(jì)劃任務(wù);
如果您想得到Sysstat工具集所收集的系統(tǒng)信息自動(dòng)存為某個(gè)文件中,你必須通過cron 為 sa1 和sa2 做計(jì)劃任務(wù)。我們可以通過修改用戶的crontab。在默認(rèn)的情況下,Sysstat歷史信息將被存放在/var/log/sa文件中。如果想定義自己的計(jì)劃任務(wù),請(qǐng)參考:
《計(jì)劃任務(wù)工具 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 &
創(chuàng)建Sysstat的啟動(dòng)腳本;
[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的守護(hù)進(jìn)程,這樣我們開機(jī)后,Sysstat的守護(hù)進(jìn)程,就時(shí)時(shí)刻刻的為我們服務(wù)了。sa 、sa1或sa2自動(dòng)把信息存在 /var/log/sa目錄的二進(jìn)制文件中,我們可以通過sar工具來提取這些系統(tǒng)信息的歷史;
當(dāng)然我們也可以通過手動(dòng)的方法來打開Sysstat的守護(hù)程序,也就是我們前面所制作的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目錄中,如果你沒有設(shè)置可執(zhí)行路徑,要用絕對(duì)路徑來運(yùn)行比較方便 ,/usr/lib/sa/sadc;sadc 是把數(shù)據(jù)寫在一個(gè)二進(jìn)制的文件中,如果想查看數(shù)據(jù)內(nèi)容,需要用sadf工具來顯示;
sadc 的用法;
/usr/lib/sa/sadc [ -d ] [ -F ] [ -I ] [ -L ] [ -V ] [ interval [ count ] ] [ outfile ]
參數(shù)說明:
-d 報(bào)告硬盤設(shè)置的相關(guān)統(tǒng)計(jì);
-F 強(qiáng)制把數(shù)據(jù)寫入文件;
-I 報(bào)告所有系統(tǒng)中斷數(shù)據(jù);
interval 表示時(shí)間間隔,單位是秒,比如3 ;
count 統(tǒng)計(jì)數(shù)據(jù)的次數(shù),也是一個(gè)數(shù)字;
outfile 輸出統(tǒng)計(jì)到outfile文件;
注意:此工具中的參數(shù)都是可選的,如果沒有指定任何參數(shù),比如 /usr/lib/sa/sadc - ,則會(huì)輸出數(shù)據(jù)到 /var/log/sa/ 目錄下的一個(gè)文件中。我們要通過sadf 或sar工具來查看;
[root@localhost beinan]# /usr/lib/sa/sadc -
[root@localhost beinan]# ls /var/log/sa 注:列出所有sa目錄下的文件,根據(jù)文件的時(shí)間來判斷哪個(gè)文件是最新的;
[root@localhost beinan]# sar -f /var/log/sa/sa12
或
[root@localhost beinan]# sadf /var/log/sa/sa12
舉例:我們想把sadc收集到的數(shù)據(jù)寫到一個(gè)指定的文件中;
[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時(shí)15分30秒 CPU %user %nice %system %iowait %idle
09時(shí)15分31秒 all 3.00 0.00 0.00 1.00 96.00
09時(shí)15分32秒 all 0.00 0.00 0.00 0.00 100.00
09時(shí)15分33秒 all 0.00 0.00 0.00 0.00 100.00
09時(shí)15分34秒 all 0.00 0.00 0.00 0.00 100.00
09時(shí)15分35秒 all 0.00 0.00 0.00 0.00 100.00
09時(shí)15分36秒 all 0.00 0.00 0.00 0.00 100.00
09時(shí)15分37秒 all 0.00 0.00 0.00 0.00 100.00
09時(shí)15分38秒 all 0.00 0.00 0.00 0.00 100.00
09時(shí)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 收集系統(tǒng)動(dòng)態(tài)數(shù)據(jù),讓它收集1秒之內(nèi)的10次動(dòng)態(tài)信息; 然后通過sar 工具來查看系統(tǒng)的狀態(tài)。也可以用 sadf 來查看所收集的數(shù)據(jù),但不是太直觀。您自己嘗試一下看看。查看sa000文件,用 sadf sa000 ;
3.2 sar 工具;
sar 工具比較強(qiáng)大,既能收集系統(tǒng)CPU、硬盤、動(dòng)態(tài)數(shù)據(jù),也能顯示動(dòng)態(tài)顯示,更能查看二進(jìn)制數(shù)據(jù)文件;sar 的應(yīng)用比較多,而且也比較復(fù)雜,數(shù)據(jù)更為精確。我們只了解一下常用的內(nèi)容就行,大多數(shù)內(nèi)容我們了解就行;
用法:
sar [參數(shù)選項(xiàng)]
參數(shù)說明:
-A 顯示所有歷史數(shù)據(jù),通過讀取/var/log/sar 目錄下的所有文件,并把它們分門別類的顯示出來;
-b 通過設(shè)備的I/O中斷讀取設(shè)置的吞吐率;
-B 報(bào)告內(nèi)存或虛擬內(nèi)存交換統(tǒng)計(jì);
-c 報(bào)告每秒創(chuàng)建的進(jìn)程數(shù);
-d 報(bào)告物理塊設(shè)備(存儲(chǔ)設(shè)備)的寫入、讀取之類的信息,如果直觀一點(diǎn),可以和p參數(shù)共同使用,-dp
-f 從一個(gè)二進(jìn)制的數(shù)據(jù)文件中讀取內(nèi)容,比如 sar -f filename
-i interval 指定數(shù)據(jù)收集的時(shí)間,時(shí)間單位是秒;
-n 分析網(wǎng)絡(luò)設(shè)備狀態(tài)的統(tǒng)計(jì),后面可以接的參數(shù)有 DEV、EDEV、NFS、NFSD、SOCK等。比如-n DEV
-o 把統(tǒng)計(jì)信息寫入一個(gè)文件,比如 -o filename ;
-P 報(bào)告每個(gè)處理器應(yīng)用統(tǒng)計(jì),用于多處理器機(jī)器,并且啟用SMP內(nèi)核才有效;
-p 顯示友好設(shè)備名字,以方便查看,也可以和-d 和-n 參數(shù)結(jié)合使用,比如 -dp 或-np
-r 內(nèi)存和交換區(qū)占用統(tǒng)計(jì);
-R
-t 這個(gè)選項(xiàng)對(duì)從文件讀取數(shù)據(jù)有用,如果沒有這個(gè)參數(shù),會(huì)以本地時(shí)間為標(biāo)準(zhǔn) 讀出;
-u 報(bào)告CPU利用率的參數(shù);
-v 報(bào)告inode, 文件或其它內(nèi)核表的資源占用信息;
-w 報(bào)告系統(tǒng)交換活動(dòng)的信息; 每少交換數(shù)據(jù)的個(gè)數(shù);
-W 報(bào)告系統(tǒng)交換活動(dòng)吞吐信息;
-x 用于監(jiān)視進(jìn)程的,在其后要指定進(jìn)程的PID值;
-X 用于監(jiān)視進(jìn)程的,但指定的應(yīng)該是一個(gè)子進(jìn)程ID;
sar 應(yīng)用舉例;
實(shí)例一: 如果只用sar 命令,sar就是讀取 /var/log/sa目錄下最近系統(tǒng)狀態(tài)文件。
[root@localhost ~]# sar
[root@localhost ~]# sar -A 注:讀取/var/log/sa目錄下所有文件數(shù)據(jù);
如果我們想知道CPU的利用率;動(dòng)態(tài)更新;下面的例子是每秒更新一次數(shù)據(jù),總共更新五次;
[root@localhost ~]# sar -u 1 5
Linux 2.6.15-1.2054_FC5 (localhost.localdomain) 2006年05月12日
時(shí)間 CPU 利用率 nice值 系統(tǒng)占用 IO占用 空閑
11時(shí)19分34秒 CPU %user %nice %system %iowait %idle
11時(shí)19分35秒 all 2.97 0.00 0.00 0.00 97.03
11時(shí)19分36秒 all 11.11 0.00 9.09 0.00 79.80
11時(shí)19分37秒 all 21.78 0.00 6.93 0.00 71.29
11時(shí)19分38秒 all 15.00 0.00 0.00 0.00 85.00
11時(shí)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:表示機(jī)器內(nèi)所有的CPU;
%user 表示CPU的利用率;
%nice 表示CPU在用戶層優(yōu)先級(jí)的百分比,0表示正常;
%system 表示當(dāng)系統(tǒng)運(yùn)行時(shí),在用戶應(yīng)用層上所占用的CPU百分比;
%iowait 表示請(qǐng)求硬盤I/0數(shù)據(jù)流出時(shí),所占用CPU的百分比;
%idle 表示空閑CPU百分比,值越大系統(tǒng)負(fù)載越低;
您可以CPU利用率的動(dòng)態(tài)信息輸出到一個(gè)文本文件中,然后通過more 來查看。
[root@localhost ~]# sar -u 1 5 > sar000.txt
[root@localhost ~]# more sar000.txt
也可以輸出到一個(gè)二進(jìn)制的文件中,然后通過sar來查看;
[root@localhost ~]# sar -u 1 5 -o sar002
[root@localhost ~]# sar -f sar002
注:如果您把數(shù)據(jù)通過-o filename 輸出到一個(gè)二進(jìn)制的文件中,是不能用文件內(nèi)容查看工具more 、less或cat來查看的,應(yīng)該用sar工具來查看,要加-f參數(shù);
實(shí)例二:查看網(wǎng)絡(luò)設(shè)備的吞吐情況;
比如我們讓數(shù)據(jù)每秒更新一次,總共更新十次;
[root@localhost ~]# sar -n DEV 2 5
時(shí)間 IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s
第一字段:時(shí)間;
IFACE:設(shè)備名;
rxpck/s:每秒收到的包;
rxbyt/s:每秒收到的所有包的體積;
txbyt/s:每秒傳輸?shù)乃邪捏w積;
rxcmp/s:每秒收到數(shù)據(jù)切割壓縮的包總數(shù);
txcmp/s :每秒傳輸?shù)臄?shù)據(jù)切割壓縮的包的總數(shù);
rxmcst/s: 每秒收到的多點(diǎn)傳送的包;
如果我們從事提取eth0設(shè)備(也就是網(wǎng)卡eth0)的信息;我們應(yīng)該用grep 來過濾。然后再顯示出來;
[root@localhost ~]# sar -n DEV 2 5 |grep eth0
11時(shí)52分37秒 eth0 1.00 1.00 97.51 97.51 0.00 0.00 0.00
11時(shí)52分39秒 eth0 1.01 1.01 98.49 98.49 0.00 0.00 0.00
11時(shí)52分41秒 eth0 1.00 1.00 98.00 98.00 0.00 0.00 0.00
11時(shí)52分43秒 eth0 1.00 1.00 98.00 98.00 0.00 0.00 0.00
11時(shí)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
如果想知道網(wǎng)絡(luò)設(shè)備錯(cuò)誤報(bào)告,也就就是用來查看設(shè)備故障的。應(yīng)該用EDEV;比如下面的例子;
[root@localhost ~]# sar -n EDEV 2 5
3.3 iostat
iostat 是用來顯示 系統(tǒng)即時(shí)系統(tǒng),比如CPU使用率,硬盤設(shè)備的吞吐率;
[root@localhost ~]# 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 提供多處理器系統(tǒng)中的CPU的利用率的統(tǒng)計(jì);mpstat 也可以加參數(shù),用-P來指定哪個(gè) CPU,處理器的ID是從0開始的。下面的例子是查看兩個(gè)處理器,每二秒數(shù)據(jù)更新一次,總共要顯示10次數(shù)據(jù);
[root@localhost ~]# mpstat -P 0 2 10 注:查看第一個(gè)CPU
[root@localhost ~]# mpstat -p 1 2 10 注:查看第二個(gè)CPU
[root@localhost ~]# mpstat 2 10 注:查看所有CPU;
3.5 sdaf
sdaf 能從二進(jìn)制文件中提取sar所收集的數(shù)據(jù);這個(gè)大家知道就行了。顯示的并不是友好的格式;
[root@localhost ~]# sar -u 2 5 -o sar003
[root@localhost ~]# sadf sar003
相對(duì)來說,用sar來讀取輸出文件的內(nèi)容更好;比如下面的;
[root@localhost ~]# sar -f sar003
4、 與Sysstat相似工具;
4.1 進(jìn)程管理工具;
進(jìn)程管理工具,包括ps 、pgrep、top、kill 、killall、pkill 等,請(qǐng)參考
《 Linux 進(jìn)程管理》
4.2 內(nèi)存使用率查看工具;
內(nèi)存使用量 free
free 工具既能查看物理內(nèi)存,也能查看虛擬內(nèi)存的用量;
[root@localhost ~]# free
如果顯示以單位M,則加-m參數(shù);
[root@localhost ~]# free -m
total used free shared buffers cached
Mem: 724 713 11 0 24 290
-/+ buffers/cache: 398 326
Swap: 800 0 800
vmstat 即時(shí)顯示內(nèi)存工具;
vmstat 是一個(gè)即時(shí)顯示內(nèi)存使用情況的工具;
vmstat 使用方法:
vmstat [-V] [-n] [delay [count]]
-V 顯示vmstat的版本;
-n causes the headers not to be reprinted regularly.
-a 顯示所有激活和未激活內(nèi)存的狀態(tài);print inactive/active page stats.
-d 顯示硬盤統(tǒng)計(jì)信息;prints disk statistics
-D 顯示硬盤分區(qū)表;prints disk table
-p 顯示硬盤分區(qū)讀寫狀態(tài)等;prints disk partition statistics
-s 顯示內(nèi)存使用情況;prints vm table
-m prints slabinfo
-S 定義單位,k K
delay 是兩次刷新時(shí)間間隔;
單位體積: k:1000 K:1024 m:1000000 M:1048576 (默認(rèn)是 K)
count 刷新次數(shù);
5、 關(guān)于本文;
我在2004年10月30日,寫過一篇Sysstat 的文章 ,當(dāng)時(shí)也并沒有把Sysstat搞的太清楚,只是會(huì)簡單的操作,原文可參見
《系統(tǒng)維護(hù)常用工具sysstat》
。
今天重寫此文,主要是以前寫的比較差,所以對(duì)一些參數(shù)進(jìn)行了測(cè)試、考證,我想這樣應(yīng)該對(duì)新手方便一點(diǎn)。
本文也并不是大而全的man ,有些參數(shù)怎么理解,還得依靠我們自己。我認(rèn)為掌握一些常用的參數(shù)就行,沒有必要把一個(gè)命令研究的多透徹。有些東西,如果我們用不著,學(xué)了也沒有什么用,這就是學(xué)為所用吧。
6、后記;
7、 參考文檔;
8、 相關(guān)文檔;
《 Linux 進(jìn)程管理》
本文來自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u1/52658/showart_431022.html |
|