天天看點

AIX的sar指令詳解(原創)

sar概述

<a></a>

sar 指令将 作業系統中標明的累計活動計數器的内容寫到标準輸出。基于 number 和 interval 參數的值,記帳系統以指定的時間間隔(以秒為機關)和指定間隔次數寫入資訊。number 參數的預設采樣時間間隔為 1 秒。收集的資料也可以儲存在由 -o file 标志所指定的檔案中。

計算等待磁盤 i/o 所花費 cpu 時間(wio 時間)百分比的方法的改進。

在 aix 4.3.2 及早期作業系統版本中采用的方法在某些情況下會在 smp 上顯示出誇大的 wio 時間。wio 時間是由 sar(%wio)指令、vmstat(wa)指令和 iostat(% iowait)指令報告的。

aix 4.3.2 及早期版本中使用的方法如下:每個處理器上的每次時鐘中斷(每個處理器 100 次/秒)時,都須确定要将最後 10 ms 時間花費在四個類别(usr/sys/wio/idle)中的哪個上。如果時鐘中斷時 cpu 正處于 usr 模式下,則 usr 類别擷取該時鐘信号加入其中。如果時鐘中斷時 cpu 處于 kernel 模式下,則 sys 類别擷取該信号。如果 cpu 不忙,則檢查是否有任何磁盤 i/o 正在進行。如果有正在進行的磁盤 i/o,則增加 wio 類别。如果沒有正在進行的磁盤 i/o 且 cpu 不忙,則 idle 類别取得該信号。wio 時間的誇大是由于所有空閑 cpu 都被視為 wio,而不管等待 i/o 的線程數。例如,隻有一個線程正在執行 i/o 的系統可能報告大于 90% 的 wio 時間,而不管該系統擁有的 cpu 數量。

作業系統 aix 4.3.3 及以後版本中使用的方法如下:在作業系統 aix 4.3.3 中所作的更改是僅當某空閑 cpu 上有未完成的 i/o 開始時才将其标記為 wio。當隻有幾個線程正在執行 i/o,或者系統為空閑時,此方法所報告的 wio 時間要低得多。例如,系統中有四個cpu 且一個線程正在執行 i/o 時,最多隻報告 25% 的 wio 時間。系統中有十二個 cpu 且一個線程正在執行 i/o 時,最多報告 8% 的 wio 時間。nfs客戶機通過 vmm 進行讀/寫,現在将 biod 在 vmm等待 i/o 完成所花費的時間報告為 i/o 等待時間。

sar參數

-a

沒有使用 -p 标志時,使用 -a 标志相當于指定 -abckmqruvwy 。當與 -p 标志一起使用時,-a 相當于指定 -acmuw 。

注:根據 sar 指令運作的時間間隔,它本身可以生成相當多的讀和寫。在無工作負荷的情況下運作 sar 統計,以了解 sar 指令在總統計資訊中的份額。

報告每個塊裝置(除錄音帶驅動器外)的活動。所報告的活動資料是:%busy, 報告裝置忙于執行傳輸請求所用的那一部分時間以及該段時間内未完成的請求的平均值。read/s, write/s, blks/s報告從/到一個裝置的讀/寫傳送的數量(所傳送的位元組數以 512 位元組為機關)。avwait        每個i/o請求的平均等待時間,機關是毫秒. 表示 i/o 請求         在裝置驅動器的i/o隊列中等待通路i/o裝置的時間.avque         通路磁盤的平均i/o 請求數. 表示i/o 隊列的平均長度.           在以前的版本中此值表示的是瞬間的磁盤 i/o 請求數.            其值很高則預示着磁盤有較大瓶頸 

avserv每個i/o請求的平均(服務)完成時間,機關是毫秒. 表示 i/o請求到達i/o 裝置後,從裝置上得到傳回結果的時間

設定報告的結束時間。預設結束時間是 18:00。

從 file 檔案中抽取記錄,該檔案由 sar/sadc 指令的 aix 4.3 或 aix 4.2 版本生成。

從 file (由 -o file 标志建立)檔案中抽取記錄。file 參數的預設值是目前每日資料檔案,即 /var/adm/sa/sa dd 檔案。

以盡可能接近 seconds 參數所指定的秒數選擇資料記錄。否則,sar 指令将報告在該資料檔案中找到的所有秒數。

将讀取的内容以二進制格式儲存在檔案裡。每個讀取為一條單獨的記錄,而且每個記錄都含有一個辨別該讀取時間的标記。

報告指定處理器的每個處理器的統計資訊。指定 all 關鍵字報告每個處理器的統計資訊以及所有處理器的全部統計資訊。在指定要報告的統計資訊的标志中,隻有 -a、-c 、-m 、-u 和 -w 标志對 -p 标志有意義。

注: 任何列為空值表示相關的隊列為空。

設定資料開始時間,使 sar 指令以(遵循)指定時間抽取有時間标記的記錄。預設開始時間是 08:00。

報告每個處理器或整個系統的統計資訊。當與 -p 标志一起使用時,為每個指定的處理器提供此資訊;否則,隻在系統範圍内提供此資訊。因為 -u 标志資訊以百分比表示,是以系統範圍資訊隻是每個處理器統計資訊的平均值。并且,i/o 等待狀态是以整個系統而不是每個處理器來定義的。将顯示以下數值:

  %idle

報告 cpu 為空閑(且沒有未完成的 i/o 請求)所占的時間百分比。  %sys報告 cpu 在系統(或核心)級别上執行所花費的時間的百分比。  %usr報告 cpu 在使用者(或應用程式)級别上執行所花費的時間的百分比。  %wio報告 cpu 空閑(但系統有未完成的磁盤/nfs i/o 請求)所占的時間的百分比。請參閱以上的較長的描述。 

注: 如果沒有請求其它特定的内容選項,則sar 指令報告系統部件的活動。

  physc           

        消耗實體處理器的數目,隻在共享處理器或啟用同時多線

           程的分區上報告

讀取在以前作業系統版本中建立的 sar 檔案。此标志隻能與 -f 标志一起使用。

報告程序、核心線程、i-node 和檔案表的狀态。将顯示以下數值:file-sz, inod-sz , proc-sz , thrd-sz 報告每個表中正在使用的條目數。

使用示例 

1、要在随後的 20 秒内每隔 2 秒報告目前的 tty 活動和頁面排程統計資訊:

sar -y  -r 2 20

2、要觀察系統部件 10 分鐘,并以儲存為二進制檔案temp:

sar  -o temp 60 10

3、要報告最前面的兩個處理器的 cpu 活動:

sar  -u  -p 0,1

sar指令的預設參數為-u參數,故不加-u參數亦可

4、要報告所有處理器和系統範圍内的消息、信号量及 cpu 活動:

sar  -mu  -p all

5、要讀取在以前作業系統版本上生成的名為 file 的系統活動檔案中聰14:20開始到15:00結束的内容中系統切換和隊列統計資訊的那部分。其中,<code>-s</code> 并不是包含性的,是以必須從所選擇的開始時間中多減去十分鐘。 :

sar  -f file -s 14:20 -e 15:00 -w -q

參考至:http://www.ibm.com/developerworks/cn/aix/library/es-unix-perfmonsar.html

             http://hi.baidu.com/h_sn999/blog/item/413c97b755c0b4e530add156.html

             http://www.wangchao.net.cn/bbsdetail_532003.html

             http://www.kuqin.com/aixcmds/aixcmds5/sar.htm#a26891631

本文原創,轉載請注明出處、作者

如有錯誤,歡迎指正

郵箱:[email protected]

作者:czmmiao 原文位址:http://czmmiao.iteye.com/blog/1155184