天天看點

【AIX 學習】性能優化--sar

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