sar指令包含在sysstat工具包中,提供系統的衆多統計資料。其在不同的系統上指令有些差異
sar 指令行的常用格式:
在指令行中,count 和interval 兩個參數組合起來定義采樣間隔和次數,interval為采樣間隔,是必須有的參數,count為采樣次數,是可選的,預設值是1,-o file表示将指令結果以二進制格式存放在檔案中,file 在此處不是關鍵字,是檔案名。options 為指令行選項,sar指令的選項很多,常用選項如下:
-A:所有報告的總和。
-u:CPU使用率
-v:程序、I節點、檔案和鎖表狀态。
-d:硬碟使用報告。
-r:沒有使用的記憶體頁面和硬碟塊。
-g:序列槽I/O的情況。
-b:緩沖區使用情況。
-a:檔案讀寫情況。
-c:系統調用情況。
-R:程序的活動情況。
-y:終端裝置活動情況。
-w:系統交換活動。
-n:網絡統計
下面将舉例說明。
例一:使用指令行 sar -u t n
例如,每1秒采樣一次,連續采樣5次,觀察CPU 的使用情況,需鍵入如下指令:
在顯示内容包括:
%usr:CPU處在使用者模式下的時間百分比。
%nice:CPU處在低先級模式下的時間百分比。
%sys:CPU處在系統模式下的時間百分比。
%iowait:CPU等待輸入輸出完成時間的百分比。
%idle:CPU空閑時間百分比。
例二:使用命行sar -v t n
例如,每2秒采樣一次,連續采樣3次,觀察核心表的狀态,需鍵入如下指令:
例三:使用命行sar -d t n
例如,每30秒采樣一次,連續采樣5次,報告裝置使用情況,需鍵入如下指令:
# sar -d 30 5
螢幕顯示:
顯示内容包括:
device: sar指令正在監視的塊裝置的名字。
%busy: 裝置忙時,傳送請求所占時間的百分比。
avque: 隊列站滿時,未完成請求數量的平均值。
r+w/s: 每秒傳送到裝置或從裝置傳出的資料量。
blks/s: 每秒傳送的塊數,每塊512位元組。
avwait: 隊列占滿時傳送請求等待隊列空閑的平均時間。
avserv: 完成傳送請求所需平均時間(毫秒)。
例四 網絡統計情況
totsck 使用的套接字總數量
tcpsck 使用的TCP套接字數量
udpsck 使用的UDP套接字數量
rawsck 使用的raw套接字數量
ip-frag 使用的IP段數量
例五:使用命行sar -b t n
例如,每5秒采樣一次,連續采樣2次,報告緩沖區的使用情況,需鍵入如下指令:
bread/s: 每秒從硬碟讀入系統緩沖區buffer的實體塊數。
lread/s: 平均每秒從系統buffer讀出的邏輯塊數。
%rcache: 在buffer cache中進行邏輯讀的百分比。
bwrit/s: 平均每秒從系統buffer向磁盤所寫的實體塊數。
lwrit/s: 平均每秒寫到系統buffer邏輯塊數。
%wcache: 在buffer cache中進行邏輯讀的百分比。
pread/s: 平均每秒請求實體讀的次數。
pwrit/s: 平均每秒請求實體寫的次數。
在顯示的内容中,最重要的是%cache和%wcache兩列,它們的值展現着buffer的使用效率,%rcache的值小于90或者%wcache的值低于65,應适當增加系統buffer的數量,buffer數量由核心參數NBUF控制,使%rcache達到90左右,%wcache達到80左右。但buffer參數值的多少影響I/O效率,增加buffer,應在較大記憶體的情況下,否則系統效率反而得不到提高。
例六:使用命行sar -g t n
例如,每30秒采樣一次,連續采樣5次,報告序列槽I/O的操作情況,需鍵入如下指令:
# sar -g 30 5
ovsiohw/s:每秒在序列槽I/O硬體出現的溢出。
ovsiodma/s:每秒在序列槽I/O的直接輸入輸出通道高速緩存出現的溢出。
ovclist/s :每秒字元隊列出現的溢出。
在顯示的内容中,每一列的值都是零,表明在采樣時間内,系統中沒有發生序列槽I/O溢出現象。