Linux命令掃盲 之 sar


今天在讀《大規模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次。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM