sar 是unix中的性能監控工具,是system activity report 的縮寫,主要收集,顯示,和儲存系統的活動資訊,包括cpu效率,記憶體使用狀況,系統調用的使用,檔案讀寫情況,程序活動即pic有關活動等。
sar 指令設計由cron守候程序啟動執行,如果cron 程序每天都沒有執行sar指令,
當運作不帶參數的sar指令時會出現如下提示:
ufserver[/]#sar
can't open /var/adm/sa/sa10
try running /usr/lib/sa/sa1
執行一次,就可以使用sar指令
ufserver[/]#/usr/lib/sa/sa1 2 5
ufserver[/]#sar ---不帶參數顯示cpu 統計資訊
aix ufserver 3 5 00cecd3e4c00 09/10/10
system configuration: lcpu=4 mode=capped
13:51:40 %usr %sys %wio %idle physc
13:51:42 1 1 0 99 2.00
13:51:44 0 1 0 99 2.00
13:51:46 0 1 0 99 2.01
13:51:48 1 1 0 99 2.00
average 1 1 0 99 2.00
%usr cpu花在使用者應用程式上的時間百分比。
%sys 處于系統模式下的時間,cpu花在核心程式上的時間百分比。
%wio cpu為等待磁盤i/o完成而空閑的百分比
%idle cpu純粹地處于空閑狀态的時間百分比,即沒有磁盤i/o請求。
physc ?
ufserver[/]#sar 5 5 --每隔5秒收集一次cpu資訊,共采集10次。
13:58:44 %usr %sys %wio %idle physc
13:58:49 1 1 0 98 2.00
13:58:54 1 1 0 99 2.00
13:58:59 1 1 0 98 2.00
13:59:04 1 1 0 99 2.00
13:59:09 1 1 0 98 2.00
average 1 1 0 98 2.00
ufserver[/]#sar -a 3 5 --以3秒為周期采樣5次,報告檔案系統的檔案讀寫操作情況
14:16:21 iget/s lookuppn/s dirblk/s
14:16:24 0 1079 0
14:16:27 0 663 0
14:16:30 0 1621 0
14:16:33 0 749 0
14:16:36 0 1437 0
average 0 1110 0
ufserver[/]# --系統調用的情況。系統調用是有作業系統提供的系統函數,這些函數可以由應用程式或系統程式調用。
ufserver[/]#sar -c 3 5
14:19:05 scall/s sread/s swrit/s fork/s exec/s rchar/s wchar/s
14:19:08 2158 21 19 0.66 0.66 4564 1206
14:19:11 5170 300 18 1.94 3.56 1055832 1184
14:19:14 2141 16 16 0.00 0.00 1066 1105
14:19:17 2730 17 17 0.00 0.00 1082 1121
14:19:20 2164 19 16 0.00 0.00 1389 1105
average 2886 76 17 0.53 0.86 218176 1144
各個字段的含義:
scall/s 表示每秒鐘使用系統調用的總數
sread/s 表示每秒鐘使用read()系統調用的總數
依次類推
ufserver[/]#sar -d 2 3 --統計塊裝置活動資訊 (可以使用iostat 代替sar -d )
system configuration: lcpu=4 drives=3 mode=capped
13:52:50 device %busy avque r+w/s kbs/s avwait avserv
13:52:52 hdisk1 0 0.0 0 0 0.0 0.0
hdisk0 2 0.0 3 15 0.0 7.0
cd0 0 0.0 0 0 0.0 0.0
13:52:54 hdisk1 0 0.0 0 0 0.0 0.0
hdisk0 0 0.0 0 8 0.0 4.2
13:52:56 hdisk1 0 0.0 0 0 0.0 0.0
hdisk0 0 0.0 0 0 0.0 0.0
average hdisk1 0 0.0 0 0 0.0 0.0
hdisk0 0 0.0 1 7 0.0 3.7
---統計隊列活動資訊 runq-sz<4 且 swpocc<5 較好
ufserver[/]#sar -q 2 5 檢視隊列的資訊統計
14:23:13 runq-sz %runocc swpq-sz %swpocc
14:23:15 1.0 50
14:23:17
14:23:19 1.0 50
14:23:21
14:23:23
average 1.0 20
runq-sz :指運作隊列中核心線程的平均總數
%runocc :占用的時間百分比
swpq-sz :指核心線程等待頁面調入的平均數,即交換隊列的大小
%swpocc :指交換隊列占用的時間百分比
---統計頁面排程的活動
ufserver[/]#sar -r 2 5
system configuration: lcpu=4 mem=3920mb mode=capped
14:28:49 slots cycle/s fault/s odio/s
14:28:51 1141869 0.00 426.25 74.36
14:28:53 1141869 0.00 670.12 99.26
14:28:55 1141869 0.00 333.50 0.00
14:28:57 1141869 0.00 336.00 16.00
14:28:59 1141869 0.00 2152.19 0.50
average 1141869 0 781 38
cycle/s : 報告每秒頁面替換循環的數量。
fault/s :報告每秒缺頁故障的數量。它沒有對生成 i/o 的缺頁故障進行計數,因為一些缺頁故障可以在沒有 i/o 的情況下解決。
slots :報告在調頁空間中空閑頁的數量。
odio/s :報告每秒非頁面排程磁盤 i/o 的數量。
----檢視系統表的使用情況。
ufserver[/]#sar -v 2 5
system configuration: mode=capped
14:31:25 proc-sz inod-sz file-sz thrd-sz
14:31:27 142/262144 0/206 935/41675 356/524288
14:31:29 142/262144 0/206 935/41675 356/524288
14:31:31 141/262144 0/206 935/41675 355/524288
14:31:33 142/262144 0/206 935/41675 356/524288
14:31:35 141/262144 0/206 935/41675 355/524288
報告程序、核心線程、i-node 和檔案表的狀态。将顯示以下數值:
file-sz 檔案表, inod-sz i 節點表, proc-sz 程序表, thrd-sz 核心線程表
報告每個表中正在使用的條目數。
各列的值是分數,分子表示采樣時 已經使用的表的個數,分母表示總的個數。通過監控表的使用情況,可以判斷相應的系統表是否溢出。當發生溢出時 要調整相應的系統核心參數。
---統計tty裝置的資訊
ufserver[/]#sar -y 2 6
14:37:06 rawch/s canch/s outch/s rcvin/s xmtin/s mdmin/s
14:37:08 0 0 71 0 0 0
14:37:10 0 0 29 0 0 0
14:37:12 0 0 29 0 0 0
14:37:14 0 0 29 0 0 0
14:37:16 0 0 29 0 0 0
14:37:18 0 0 29 0 0 0
average 0 0 36 0 0 0
報告每秒 tty 裝置的活動。
canch/s 報告 tty 規範輸入隊列字元。對于 aix v4 及以後的版本,本字段總是 0(零)。
mdmin/s 報告 tty 數據機中斷次數。
outch/s 報告 tty 輸出隊列字元數。
rawch/s 報告 tty 輸入隊列字元數。
revin/s 報告 tty 接收中斷次數。
xmtin/s 報告 tty 發送中斷次數
---緩沖區的資訊統計 (測試機比較空閑)
ufserver[/]#sar -b 3 5
14:39:50 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s
14:39:53 0 0 0 0 0 0 0 0
14:39:56 0 0 0 0 0 0 0 0
14:39:59 0 0 0 0 0 0 0 0
14:40:02 0 0 0 0 0 0 0 0
14:40:05 0 0 0 0 0 0 0 0
average 0 0 0 0 0 0 0 0
ufserver[/]#
報告緩沖區活動中每秒用于傳輸、存取以及高速緩存(核心塊高速緩存)的命中率。存取第 3 版本中的大多數檔案會忽略核心塊緩沖,是以不生成這些統計資訊。然而,如果程式打開塊裝置或裸字元裝置進行 i/o,則使用傳統的存取機制使生成的統計資訊變得有意義。将顯示以下數值:
bread/s, bwrit/s
報告 i/o 操作的塊的數目。這些 i/o 通常由核心執行來管理塊高速緩存區,正如在 lread/s 值的描述中所論述的那樣。
lread/s, lwrit/s
報告邏輯 i/o 請求的數量。當執行對塊裝置的邏輯讀或寫時,可能請求小于整塊大小的邏輯傳輸大小。系統對所有塊的實體裝置單元進行存取,并将這些塊緩沖在為此目的而留出的核心緩沖區(塊 i/o 高速緩存區)中。這個高速緩存區由核心管理,是以對塊裝置的多個邏輯讀寫可以存取以前緩沖在高速緩存中的資料,而且不需要對該裝置進行真正的 i/o。應用程式對塊的讀寫請求作為邏輯讀寫而統計地報告。由管理高速緩存區的核心所執行的對塊裝置的塊 i/o 作為塊讀寫而報告。
pread/s, pwrit/s
報告對裸裝置的 i/o 操作的數量。對裸字元裝置的 i/o 請求不像對塊裝置的 i/o 請求那樣緩沖。直接對裝置執行 i/0。
%rcache, %wcache
報告高速緩存的效率(高速緩存命中百分比)。此百分比由下式計算得出:[(100)x(lreads - breads)/ (lreads)]。
--報告核心程序活動。将顯示以下數值:
ufserver[/]#sar -k 3 5
14:44:01 ksched/s kproc-ov kexit/s
14:44:04 0 0 0
14:44:07 0 0 0
14:44:10 0 0 0
14:44:13 0 0 0
14:44:16 0 0 0
average 0 0 0
字段含義:
kexit/s
報告每秒核心程序終止數。
kproc-ov/s
報告由于實施程序門檻值限制而不能建立核心程序的次數。
ksched/s
報告每秒配置設定執行任務的核心程序數。
--報告每秒消息(發送和接收)以及信号量(建立、使用或破壞)活動。
當與 -p 标志一起使用時,為每個指定的處理器提供此資訊;否則,隻在系統範圍内提供此資訊。将顯示以下數值:
ufserver[/]#sar -m 2 6
14:45:15 msg/s sema/s
14:45:17 0.00 9.94
14:45:19 0.00 10.00
14:45:21 0.00 14.50
14:45:23 0.00 10.00
14:45:25 0.00 10.00
14:45:27 0.00 10.00
average 0.00 10.74
ufserver[/]#sar -mp 2 6 ---使用參數p
14:46:09 cpu msg/s sema/s
14:46:15 2 0.00 10.83
msg/s
報告 ipc 消息原語的數量。
sema/s
報告 ipc 信号量原語的數量。
--報告系統切換的活動。
ufserver[/]#sar -w 3 5
14:47:31 cswch/s
14:47:34 1040
14:47:37 1132
14:47:40 1057
14:47:43 1425
14:47:46 1459
average 1223
cswch/s
報告每秒上下文轉接的數量。
---報告所有處理器和系統範圍内的消息、信号量及 cpu 活動,:
ufserver[/]#sar -mu -p all
13:51:40 cpu msg/s sema/s
13:51:42 0 0.00 9.95
1 0.00 0.00
2 0.00 0.00
3 0.00 0.00
- 0.00 9.85
13:51:44 0 0.00 10.00
- 0.00 10.00
13:51:46 0 0.00 1.00
2 0.00 8.78
- 0.00 9.93
13:51:48 0 0.00 0.00
2 0.00 10.00
- 0.00 9.88
average 0 0.00 5.18
2 0.00 4.71
- 0.00 9.91
13:51:40 cpu %usr %sys %wio %idle physc
13:51:42 0 2 2 0 96 0.53
1 0 0 0 100 0.47
2 0 0 0 99 0.52
3 0 0 0 100 0.48
- 1 1 0 99 2.00
13:51:44 0 2 2 0 97 0.52
- 0 1 0 99 2.00
13:51:46 0 2 1 0 97 0.53
1 0 0 0 100 0.48
2 0 1 0 99 0.53
- 0 1 0 99 2.01
13:51:48 0 2 2 0 97 0.52
2 0 1 0 99 0.52
average 0 2 2 0 97 0.53