今天在讀《大規模Web服務開發技術》一書的時候,書中提到了sar這個命令,感覺很有用,有必要整理學習一下。(對於一位Linux初學者,不能放過任何一個學習機會 :P)
打開自己的CentOS,敲入“sar”,表示很失望:
[root@localhost ~]# sar
bash: sar: command not found
竟然沒有安裝,不過還好linux下安裝還是非常方便的。
[root@localhost ~]# yum install sysstat
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.grandcloud.cn
* extras: mirrors.grandcloud.cn
* updates: mirrors.grandcloud.cn
addons | 1.9 kB 00:00
base | 1.1 kB 00:00
extras | 2.1 kB 00:00
updates | 1.9 kB 00:00
updates/primary_db | 255 kB 00:01
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package sysstat.i386 0:7.0.2-11.el5 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
sysstat i386 7.0.2-11.el5 base 182 k
Transaction Summary
================================================================================
Install 1 Package(s)
Upgrade 0 Package(s)
Total download size: 182 k
Is this ok [y/N]: y
Downloading Packages:
sysstat-7.0.2-11.el5.i386.rpm | 182 kB 00:01
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : sysstat 1/1
Installed:
sysstat.i386 0:7.0.2-11.el5
Complete!
注:Sar是后台進程sadc的前端顯示工具,安裝名為“sysstat”的包后,sadc就會自動從內核收集報告並保存。
下面對sar的一般用法進行總結,以備忘之。
sar –u 查看CPU使用率
[root@localhost ~]# sar -u
Linux 2.6.18-194.26.1.el5 (localhost) 2012年04月29日
09時39分42秒 LINUX RESTART
09時40分01秒 CPU %user %nice %system %iowait %steal %idle
09時50分01秒 all 0.14 0.00 0.58 0.12 0.00 99.15
10時00分01秒 all 0.06 0.00 0.50 0.16 0.00 99.27
10時10分01秒 all 0.11 0.06 0.95 2.58 0.00 96.30
10時20分01秒 all 0.12 0.19 0.82 1.41 0.00 97.46
10時30分01秒 all 0.14 0.00 0.54 0.12 0.00 99.20
10時40分01秒 all 0.15 0.00 0.54 0.16 0.00 99.15
Average: all 0.12 0.04 0.65 0.76 0.00 98.43
這里:
%user : 用戶模式下消耗的CPU時間的比例;
%nice:通過nice改變了進程調度優先級的進程,在用戶模式下消耗的CPU時間的比例;
%system:系統模式下消耗的CPU時間的比例;
%iowait:CPU等待磁盤I/O而導致空閑狀態消耗時間的比例;
%steal:利用Xen等操作系統虛擬化技術時,等待其他虛擬CPU計算占用的時間比例;
%idle:CPU沒有等待磁盤I/O等的空閑狀態消耗的時間比例;
注:
如果 %iowait 的值過高,表示硬盤存在I/O瓶頸
如果 %idle 的值高但系統響應慢時,有可能是 CPU 等待分配內存,此時應加大內存容量
如果 %idle 的值持續低於 10,則系統的 CPU 處理能力相對較低,表明系統中最需要解決的資源是 CPU。
sar –q 查看平均負荷
[root@localhost ~]# sar -q
Linux 2.6.18-194.26.1.el5 (localhost) 2012年04月29日
09時39分42秒 LINUX RESTART
09時40分01秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
09時50分01秒 0 152 0.00 0.02 0.05
10時00分01秒 0 152 0.00 0.00 0.00
10時10分01秒 0 156 0.39 0.09 0.03
10時20分01秒 0 151 0.00 0.03 0.01
10時30分01秒 0 151 0.00 0.00 0.00
10時40分01秒 0 151 0.00 0.00 0.00
10時50分01秒 0 151 0.00 0.00 0.00
Average: 0 152 0.06 0.02 0.01
runq-sz: 運行隊列的長度(等待運行的進程數)
plist-sz: 進程列表中進程(processes)和線程(threads)的數量
ldavg-1: 最后1分鍾的系統平均負載(System load average)
ldavg-5: 過去5分鍾的系統平均負載
ldavg-15: 過去15分鍾的系統平均負載
sar –r 查看內存使用情況
[root@localhost ~]# sar -r
Linux 2.6.18-194.26.1.el5 (localhost) 2012年04月29日
09時39分42秒 LINUX RESTART
09時40分01秒 kbmemfree kbmemused %memused kbbuffers kbcached kbswpfree kbswpused %swpused kbswpcad
09時50分01秒 481572 553492 53.47 35592 384508 2097144 0 0.00 0
10時00分01秒 480960 554104 53.53 36032 384512 2097144 0 0.00 0
10時10分01秒 404952 630112 60.88 77764 399432 2097144 0 0.00 0
10時20分01秒 375824 659240 63.69 87356 410892 2097144 0 0.00 0
10時30分01秒 371860 663204 64.07 87756 411064 2097144 0 0.00 0
…
kbmemfree:空閑物理內存量;
kbmemused:使用中的物理內存量;
%memused:物理內存量使用率;
kbbuffers:內核中作為緩沖區使用的物理內存容量;
kbcacheed:內核中作為緩存使用的物理內存容量;
kbswpfree:交換區的空閑容量;
kbswpused:使用中的交換區容量;
sar –W 查看頁面交換發生狀況
[root@localhost ~]# sar -W
14時30分01秒 pswpin/s pswpout/s
14時40分01秒 0.00 0.00
14時50分01秒 0.00 0.00
15時00分01秒 0.00 0.00
Average: 0.00 0.00
…
sar –b 查看I/O和傳送速率的統計信息
[root@localhost ~]# sar -b 1 5
Linux 2.6.18-194.26.1.el5 (localhost) 2012年04月29日
15時08分18秒 tps rtps wtps bread/s bwrtn/s
15時08分19秒 0.00 0.00 0.00 0.00 0.00
15時08分20秒 0.00 0.00 0.00 0.00 0.00
15時08分21秒 0.00 0.00 0.00 0.00 0.00
15時08分22秒 13.27 0.00 13.27 0.00 220.41
15時08分23秒 0.00 0.00 0.00 0.00 0.00
Average: 2.66 0.00 2.66 0.00 44.17
tps: 每秒鍾物理設備的 I/O 傳輸總量
rtps: 每秒鍾從物理設備讀入的數據總量
wtps: 每秒鍾向物理設備寫入的數據總量
bread/s: 每秒鍾從物理設備讀入的數據量,單位為 塊/s
bwrtn/s: 每秒鍾向物理設備寫入的數據量,單位為 塊/s
其他還有:
sar –c 每秒鍾創建的進程數
sar -n DEV 輸出網絡設備狀態的統計信息
注:默認情況是對過去時間段進行數據統計,一般從最近的0:00開始顯示。如果想繼續查看一天前的報告,可以用-f選項指定保存在/var/log/sa目錄下的日志文件中。如果想周期性的查看當前數據可以命令后面加上數字參數,如sar –q 1 3 ,表示:1秒1次,共3次。