使用Sar實現系統監控

dbhelper發表於2014-11-29

 

持續的效能監控,是進行運維、調優工作的重要環節。優質的監控工具應該具備兩個層面的特性:其一是診斷的全面性,監控專案包括CPU、記憶體、網路等多個方面,細粒度的診斷。另一個層面是效能層面,要求監控工具對系統執行影響最小,不能由於效能監控工具帶來過量負載。

目前一種常用的做法,是使用作業系統自帶的效能評測工具,如topvmstat。本篇我們介紹一個在Linux/AIX中經常使用的綜合評測工具SAR

 

1、環境介紹

 

我們選擇Linux環境進行測試實驗。

 

[oracle@SimpleLinux ~]$ uname -r

2.6.18-128.el5

[oracle@SimpleLinux ~]$

 

在安裝Oracle的資料庫伺服器上,sar定期執行是自動開啟的。通常情況下,直接使用sar命令,就可以檢視到每日中每隔10s進行的效能資料收集。

 

[oracle@SimpleLinux ~]$ sar

Linux 2.6.18-128.el5 (SimpleLinux.localdomain)  10/24/2013

 

08:52:32 AM       LINUX RESTART

 

09:00:01 AM       CPU     %user     %nice   %system   %iowait    %steal     %idle

09:10:01 AM       all      0.00      0.00      0.43      0.00      0.00     99.57

09:20:01 AM       all      0.00      0.00      0.42      0.00      0.00     99.58

09:30:01 AM       all      0.00      0.00      0.44      0.00      0.00     99.56

 

 

在預設輸出中,我們可以看到每個取樣點時刻的CPUIO負載情況。Sar命令屬於標準Linux命令,我們從helpman命令中都可以找到幫助文件。

 

[oracle@SimpleLinux ~]$ sar -h

Usage: sar [ options... ] [ [ ] ]

Options are:

[ -A ] [ -b ] [ -B ] [ -c ] [ -d ] [ -i ] [ -p ] [ -q ]

[ -r ] [ -R ] [ -t ] [ -u ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ]

[ -I { | SUM | ALL | XALL } ] [ -P { | ALL } ]

[ -n { DEV | EDEV | NFS | NFSD | SOCK | ALL } ]

[ -x { | SELF | ALL } ] [ -X { | SELF | ALL } ]

[ -o [ ] | -f [ ] ]

[ -s [ ] ] [ -e [ ] ]

 

這裡建議有興趣的朋友可以使用man命令開啟sar幫助文件,其中包括所有的引數提示和結果指標含義。這個對於更好使用sar和了解OS工作原理很有益處。

 

2Linux下的sar自動執行

 

Sar本身是一個固定間隔取樣工具,只要輸入時間間隔(s)和次數,就可以進行效能收集。

 

[oracle@SimpleLinux ~]$ sar 5 3

Linux 2.6.18-128.el5 (SimpleLinux.localdomain)  12/25/2013

 

03:14:08 PM       CPU     %user     %nice   %system   %iowait    %steal     %idle

03:14:13 PM       all      0.20      0.00      0.40      0.00      0.00     99.40

03:14:18 PM       all      0.20      0.00      0.40      0.00      0.00     99.41

03:14:23 PM       all      0.20      0.00      1.00      0.20      0.00     98.61

Average:          all      0.20      0.00      0.60      0.07      0.00     99.14

 

從直接看,sar是一個實時的收集工具。但是我們在Linux上經常可以看到後臺sar在每隔10s進行收集,一次至少看到一天的全部資料。本部分一起來討論這個。

Sar本身自動收集可能有兩種途徑,一個是透過crontab自動執行,另一個是透過其他後臺程式的自動執行。我們的確發現了Sar是透過sysstat工具收集。

Sysstat是我們安裝Oracle資料庫的過程中必須要安裝的補充包。安裝之後,它會自動透過cron機制來呼叫sar

 

 

[root@SimpleLinux ~]# rpm -qa sysstat

sysstat-7.0.2-3.el5

[root@SimpleLinux ~]#

 

[root@SimpleLinux ~]# cat /etc/cron.d/sysstat –sysstat的自動執行專案

# run system activity accounting tool every 10 minutes

*/10 * * * * root /usr/lib/sa/sa1 1 1

# generate a daily summary of process accounting at 23:53

53 23 * * * root /usr/lib/sa/sa2 –A

 

sysstat呼叫命令中,看到兩個命令列。第一個命令sa1 1 1的含義是進行一次資料收集,立即啟動。執行頻率是每10秒鐘執行一次。第二個命令式資料彙總動作,每天晚上23:53啟動,sa2 –A是將當天資料進行彙總收集。

積累資料是儲存在檔案中的,按照日DD的順序進行儲存。

 

[root@SimpleLinux ~]# cd /var/log/sa

[root@SimpleLinux sa]# ls -l

total 1688

-rw-r--r-- 1 root root  71552 Dec  2 17:50 sa02

-rw-r--r-- 1 root root   6560 Sep  6 17:50 sa06

-rw-r--r-- 1 root root  72944 Oct  8 17:40 sa08

(篇幅原因,有省略……

-rw-r--r-- 1 root root   4640 Oct 31 09:10 sa31

[root@SimpleLinux sa]#

 

3sar常用場景

 

介紹幾個常用的場景。Sar兩種工作模式,一個是資料收集模式,另一個是結果解析模式。如果我們輸入了收集時間間隔和持續次數引數,就進入資料收集模式。在這個模式下,Sar程式會將目標引數指標進行定期收集,將結果儲存在資料檔案裡面。指定輸出引數-o,可以將資料儲存在特定的檔案裡面。

如果沒有指定-o引數,就會儲存在預設的/var/log/sa目錄檔案中。

 

 

[root@SimpleLinux sa]# sar 1 5

Linux 2.6.18-128.el5 (SimpleLinux.localdomain)  12/24/2013

 

03:47:43 PM       CPU     %user     %nice   %system   %iowait    %steal     %idle

03:47:44 PM       all      0.00      0.00      0.00      0.00      0.00    100.00

03:47:45 PM       all      0.99      0.00      0.00      0.00      0.00     99.01

03:47:46 PM       all      0.00      0.00      0.98      0.00      0.00     99.02

03:47:47 PM       all      1.00      0.00      2.00     14.00      0.00     83.00

03:47:48 PM       all      0.00      0.00      0.98      0.00      0.00     99.02

Average:          all      0.40      0.00      0.79      2.77      0.00     96.04

 

[root@SimpleLinux sa]# sar -o /tmp/sartmp.dat 1 5

Linux 2.6.18-128.el5 (SimpleLinux.localdomain)  12/24/2013

 

03:48:08 PM       CPU     %user     %nice   %system   %iowait    %steal     %idle

03:48:09 PM       all      0.00      0.00      0.00      0.00      0.00    100.00

03:48:10 PM       all      0.00      0.00      0.00      0.00      0.00    100.00

03:48:11 PM       all      0.00      0.00      0.99      0.00      0.00     99.01

03:48:12 PM       all      0.00      0.00      0.00      0.00      0.00    100.00

03:48:13 PM       all      0.00      0.00      0.00      0.00      0.00    100.00

Average:          all      0.00      0.00      0.20      0.00      0.00     99.80

 

目錄上可以看到對應的檔案。

 

[root@SimpleLinux sa]# cd /tmp

[root@SimpleLinux tmp]# ls -l | grep sar

-rw-r--r-- 1 root   root     9024 Dec 24 15:48 sartmp.dat

 

另一種sar工作模式是結果輸出模式,可以從預設的檔案中輸出,也可以透過-f引數指定輸出位置。

 

 

[root@SimpleLinux sa]# sar -B -f /tmp/sartmp.dat

Linux 2.6.18-128.el5 (SimpleLinux.localdomain)  12/24/2013

 

03:48:08 PM  pgpgin/s pgpgout/s   fault/s  majflt/s

03:48:09 PM      0.00     64.00     47.00      0.00

03:48:10 PM      0.00     47.52     23.76      0.00

03:48:11 PM      0.00     31.68     13.86      0.00

03:48:12 PM      0.00     15.84     11.88      0.00

03:48:13 PM      0.00     48.00     12.00      0.00

Average:         0.00     41.35     21.67      0.00

 

另外常用的輸出引數-s-e,用於規定時間範圍。

 

 

[root@SimpleLinux sa]# sar -s 14:00:00 -e 15:00:00

Linux 2.6.18-128.el5 (SimpleLinux.localdomain)  10/24/2013

02:00:52 PM       LINUX RESTART

02:10:01 PM       CPU     %user     %nice   %system   %iowait    %steal     %idle

02:20:01 PM       all      0.47      0.00      1.97      2.17      0.00     95.39

02:30:01 PM       all      0.37      0.00      1.34      0.29      0.00     97.99

Average:          all      0.37      0.00      1.44      0.66      0.00     97.53

 

4sar常用監控專案

 

Sar監控的範圍很廣,透過不同的引數,可以控制收集、展示的監控專案。本部分介紹幾個常見的監控點。

 

ü  CPU和通用負載

 

預設或者引數-u可以輸出CPUIO關鍵負載。

 

[root@SimpleLinux tmp]# sar -f /tmp/sartmp.dat

Linux 2.6.18-128.el5 (SimpleLinux.localdomain)  12/24/2013

 

03:48:08 PM       CPU     %user     %nice   %system   %iowait    %steal     %idle

03:48:09 PM       all      0.00      0.00      0.00      0.00      0.00    100.00

03:48:10 PM       all      0.00      0.00      0.00      0.00      0.00    100.00

03:48:11 PM       all      0.00      0.00      0.99      0.00      0.00     99.01

03:48:12 PM       all      0.00      0.00      0.00      0.00      0.00    100.00

03:48:13 PM       all      0.00      0.00      0.00      0.00      0.00    100.00

Average:          all      0.00      0.00      0.20      0.00      0.00     99.80

 

ü  IO負載和傳輸頻率

 

IO負載TPS和讀寫情況速率。

 

[root@SimpleLinux tmp]# sar -f /tmp/sartmp.dat -b

Linux 2.6.18-128.el5 (SimpleLinux.localdomain)  12/24/2013

 

03:48:08 PM       tps      rtps      wtps   bread/s   bwrtn/s

03:48:09 PM      6.00      0.00      6.00      0.00    256.00

03:48:10 PM      9.90      0.00      9.90      0.00    190.10

03:48:11 PM      5.94      0.00      5.94      0.00    126.73

03:48:12 PM      5.94      0.00      5.94      0.00     63.37

03:48:13 PM     10.00      0.00     10.00      0.00    192.00

Average:         7.55      0.00      7.55      0.00    165.41

 

ü  頁面進出情況

 

 

[root@SimpleLinux tmp]# sar -f /tmp/sartmp.dat -B

Linux 2.6.18-128.el5 (SimpleLinux.localdomain)  12/24/2013

 

03:48:08 PM  pgpgin/s pgpgout/s   fault/s  majflt/s

03:48:09 PM      0.00     64.00     47.00      0.00

03:48:10 PM      0.00     47.52     23.76      0.00

03:48:11 PM      0.00     31.68     13.86      0.00

03:48:12 PM      0.00     15.84     11.88      0.00

03:48:13 PM      0.00     48.00     12.00      0.00

Average:         0.00     41.35     21.67      0.00

 

ü  建立程式數量情況

 

每秒建立的系統程式數量。

 

 

[root@SimpleLinux tmp]# sar -f /tmp/sartmp.dat -c

Linux 2.6.18-128.el5 (SimpleLinux.localdomain)  12/24/2013

 

03:48:08 PM    proc/s

03:48:09 PM      0.00

03:48:10 PM      0.00

03:48:11 PM      0.00

03:48:12 PM      0.00

03:48:13 PM      0.00

Average:         0.00

 

ü  記憶體與交換Swap空間

 

[root@SimpleLinux tmp]# sar -r -f /tmp/sartmp.dat

Linux 2.6.18-128.el5 (SimpleLinux.localdomain)  12/24/2013

 

03:48:08 PM kbmemfree kbmemused  %memused kbbuffers  kbcached kbswpfree kbswpused  %swpused  kbswpcad

03:48:09 PM     13732    904648     98.50      7568    448828   2421732     34056      1.39     30896

03:48:10 PM     13732    904648     98.50      7576    448844   2421732     34056      1.39     30896

03:48:11 PM     13732    904648     98.50      7584    448836   2421732     34056      1.39     30896

03:48:12 PM     13732    904648     98.50      7592    448848   2421732     34056      1.39     30896

03:48:13 PM     13732    904648     98.50      7600    448840   2421732     34056      1.39     30896

Average:        13732    904648     98.50      7584    448839   2421732     34056      1.39     30896

 

 

ü  上下文切換情況

 

[root@SimpleLinux tmp]# sar -w -f /tmp/sartmp.dat

Linux 2.6.18-128.el5 (SimpleLinux.localdomain)  12/24/2013

 

03:48:08 PM   cswch/s

03:48:09 PM    744.00

03:48:10 PM    766.34

03:48:11 PM    744.55

03:48:12 PM    759.41

03:48:13 PM    764.00

Average:       755.67

 

ü  網路裝置

 

網路裝置監控有額外的引數-n,配置值ALLDEVEDEVSOCK等,對應不同的網路裝置介面。

 

 

 

[root@SimpleLinux tmp]# sar -n DEV -f /tmp/sartmp.dat

Linux 2.6.18-128.el5 (SimpleLinux.localdomain)  12/24/2013

 

03:48:08 PM     IFACE   rxpck/s   txpck/s   rxbyt/s   txbyt/s   rxcmp/s   txcmp/s  rxmcst/s

03:48:09 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00

03:48:09 PM      eth0      1.00      1.00     60.00    154.00      0.00      0.00      0.00

03:48:09 PM      sit0      0.00      0.00      0.00      0.00      0.00      0.00      0.00

03:48:10 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00

03:48:10 PM      eth0      1.98      2.97    118.81    473.27      0.00      0.00      0.00

03:48:10 PM      sit0      0.00      0.00      0.00      0.00      0.00      0.00      0.00

03:48:11 PM        lo      1.98      1.98     99.01     99.01      0.00      0.00      0.00

 

5、結論

 

Sar命令監控範圍很廣,在Linux環境上有額外的定期收集機制,對我們平時監控系統的價值值得關注。


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

相關文章