歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> UNIX 中 sar 命令的詳細使用

UNIX 中 sar 命令的詳細使用

日期:2017/2/28 15:55:27   编辑:Linux教程

1、sar 命令行的常用格式:

sar [options] [-A] [-o file] t [n]

在命令行中,t和n 兩個參數組合起來定義采樣間隔和次數,t為采樣間隔,是必須有的參數,n為采樣次數,是可選的,默認值是1,-o file表示將命令結果以二進制格式存放在文件中,file 在此處不是關鍵字,是文件名。

options 為命令行選項,sar命令的選項很多,下面只列出常用選項:

-A:所有報告的總和。
-u:CPU利用率
-v:進程、i節點、文件和鎖表狀態。
-d:硬盤使用報告。
-r:沒有使用的內存頁面和硬盤塊。
-g:串口I/O的情況。
-b:緩沖區使用情況。
-a:文件讀寫情況。
-c:系統調用情況。
-R:進程的活動情況。
-y:終端設備活動情況。
-w:系統交換活動。


例子1:采樣CPU利用率,1秒鐘采樣一次,總共采集5次。

  1. -bash-3.00$ sar -u 1 5
  2. SunOS racdb1 5.10 Generic_142909-17 sun4u 03/01/2012
  3. 14:04:57 %usr %sys %wio %idle
  4. 14:04:58 8 2 0 90
  5. 14:04:59 8 1 0 91
  6. 14:05:00 8 1 0 91
  7. 14:05:01 10 2 0 88
  8. 14:05:02 9 1 0 90
  9. Average 9 1 0 90
上面是solaris中執行命令看見的輸出,下面是hp unix中看到的輸出:
  1. $ sar -u 1 5
  2. HP-UX psmsdb01 B.11.31 U ia64 03/01/12
  3. 13:52:08 %usr %sys %wio %idle
  4. 13:52:09 1 0 4 95
  5. 13:52:10 1 0 4 95
  6. 13:52:11 0 1 5 94
  7. 13:52:12 1 1 4 94
  8. 13:52:13 1 0 4 95
  9. Average 1 0 4 95
%usr:CPU處在用戶模式下的時間百分比。
%sys:CPU處在系統模式下的時間百分比。
%wio:CPU等待輸入輸出完成時間的百分比。
%idle:CPU空閒時間百分比。
在所有的顯示中,我們應主要注意%wio和%idle,%wio的值過高,表示硬盤存在I/O瓶頸,%idle值高,表示CPU較空閒,如果%idle值高但系統響應慢時,有可能是CPU等待分配內存,此時應加大內存容量。%idle值如果持續低於10,那麼系統的CPU處理能力相對較低,表明系統中最需要解決的資源是CPU。

例子2:觀察核心表的狀態,每1秒采樣一次,連續采樣5次。

  1. $ sar -v 1 5
  2. HP-UX psmsdb01 B.11.31 U ia64 03/01/12
  3. 14:06:06 text-sz ov proc-sz ov inod-sz ov file-sz ov
  4. 14:06:07 N/A N/A 543/4096 0 1753/862170 0 11565/126976 0
  5. 14:06:08 N/A N/A 545/4096 0 1756/862170 0 11582/126976 0
  6. 14:06:09 N/A N/A 547/4096 0 1765/862170 0 11618/126976 0
  7. 14:06:10 N/A N/A 547/4096 0 1765/862170 0 11618/126976 0
  8. 14:06:11 N/A N/A 549/4096 0 1767/862170 0 11625/126976 0
  9. -bash-3.00$ sar -v 1 5
  10. SunOS racdb1 5.10 Generic_142909-17 sun4u 03/01/2012
  11. 14:06:18 proc-sz ov inod-sz ov file-sz ov lock-sz
  12. 14:06:19 371/30000 0 157620/157620 0 8887/8887 0 0/0
  13. 14:06:20 371/30000 0 157620/157620 0 8887/8887 0 0/0
  14. 14:06:21 371/30000 0 157620/157620 0 8887/8887 0 0/0
  15. 14:06:22 372/30000 0 157620/157620 0 8908/8908 0 0/0
  16. 14:06:23 372/30000 0 157620/157620 0 8910/8910 0 0/0
proc-sz:目前核心中正在使用或分配的進程表的表項數,由核心參數MAX-PROC控制。
inod-sz:目前核心中正在使用或分配的i節點表的表項數,由核心參數MAX-INODE控制。
file-sz: 目前核心中正在使用或分配的文件表的表項數,由核心參數MAX-FILE控制。
ov:溢出出現的次數。
Lock-sz:目前核心中正在使用或分配的記錄加鎖的表項數,由核心參數MAX-FLCKRE控制。
顯示內容表示,核心使用完全正常,三個表沒有出現溢出現象,核心參數不需調整,如果出現溢出時,要調整相應的核心參數,將對應的表項數加大。

例子3:報告設備使用情況,每1秒采樣一次,連續采樣1次。
  1. $ sar -d 1 1
  2. HP-UX psmsdb01 B.11.31 U ia64 03/01/12
  3. 14:14:43 device %busy avque r+w/s blks/s avwait avserv
  4. 14:14:44 disk807 5.00 0.50 6 12224 0.00 7.72
  5. disk808 15.00 0.50 22 44224 0.00 6.92
  6. disk812 3.00 0.50 4 6208 0.00 5.92
  7. disk826 5.00 0.50 6 12032 0.00 7.76
  8. disk834 12.00 0.50 16 32768 0.00 7.44
顯示內容包括:
device: sar命令正在監視的塊設備的名字。
%busy: 設備忙時,傳送請求所占時間的百分比。
avque: 隊列站滿時,未完成請求數量的平均值。
r+w/s: 每秒傳送到設備或從設備傳出的數據量。
blks/s: 每秒傳送的塊數,每塊512字節。
avwait: 隊列占滿時傳送請求等待隊列空閒的平均時間。
avserv: 完成傳送請求所需平均時間(毫秒)。
在顯示的內容中,disk807是硬盤的名字,%busy的值比較小,說明用於處理傳送請求的有效時間太少,文件系統效率不高,一般來講,%busy值高些,avque值低些,文件系統的效率比較高,如果%busy和avque值相對比較太太高,說明硬盤傳輸速度太慢,需調整。

例子4:每1秒采樣一次,連續采樣5次,報告緩沖區的使用情況
  1. $ sar -b 1 5
  2. HP-UX psmsdb01 B.11.31 U ia64 03/01/12
  3. 14:20:42 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s
  4. 14:20:43 0 1 100 13 2 0 37 25
  5. 14:20:44 0 49 100 2 14 86 37 15
  6. 14:20:45 0 1 100 15 1 0 43 2
  7. 14:20:46 0 6 100 16 13 0 37 1
  8. 14:20:47 0 15 100 6 19 68 40 1
  9. Average 0 14 100 10 10 8765239200 39 9

顯示內容包括:

bread/s: 每秒從硬盤讀入系統緩沖區buffer的物理塊數。
lread/s: 平均每秒從系統buffer讀出的邏輯塊數。
%rcache: 在buffer cache中進行邏輯讀的百分比。
bwrit/s: 平均每秒從系統buffer向磁盤所寫的物理塊數。
lwrit/s: 平均每秒寫到系統buffer邏輯塊數。
%wcache: 在buffer cache中進行邏輯寫的百分比。
pread/s: 平均每秒請求物理讀的次數。
pwrit/s: 平均每秒請求物理寫的次數。

在顯示的內容中,最重要的是%rcache和%wcache兩列,它們的值體現著buffer的使用效率,%rcache的值小於90或者%wcache的值低於65,應適當增加系統buffer的數量,buffer數量由核心參數NBUF控制,使%rcache達到90左右,%wcache達到80左右。但buffer參數值的多少影響I/O效率,增加buffer,應在較大內存的情況下,否則系統效率反而得不到提高。

Copyright © Linux教程網 All Rights Reserved