Linux SAR 指令大全

  • Linux統計/監控工具SAR詳細介紹:要判斷一個系統瓶頸問題,有時需要幾個 sar 命令選項結合起來使用,例如: 懷疑CPU存在瓶頸,可用 sar -u 和 sar -q deng 等來查看 懷疑內存存在瓶頸,可用 sar -B、sar -r 和 sar -W 等來查看 懷疑I/O存在瓶頸,可用 sar -b、sar -u 和 sar -d 等來查看

     

    sysstat 工具

    內容提要

    1. 瞭解 sysstat 工具包的組成

    2. 理解 sar 累計工作方式的配置

    3. 掌握 sar 、iostat、mpstat 命令的使用

    sysstat 工具簡介

    sysstat 是 Linux 系統中的常用工具包。它的主要用途是觀察服務負載,比如CPU和內存的佔用率、網絡的使用率以及磁盤寫入和讀取速度等。

    sysstat 工具包中包含兩類工具:

    • 即時查看工具:iostat、mpstat、sar

    • 累計統計工具:sar

    也就是說,sar 具有這兩種功能。因此,sar 是 sysstat 中的核心工具。

    爲了實現 sar 的累計統計,系統必須週期地記錄當時的信息,這是通過調用 /usr/lib/sa/ 中的三個工具實現的:

    • sa1 :收集並存儲每天系統動態信息到一個二進制的文件中,用作 sadc 的前端程序

    • sa2 :收集每天的系統活躍信息寫入總結性的報告,用作 sar 的前端程序

    • sadc :系統動態數據收集工具,收集的數據被寫入一個二進制的文件中,它被用作 sar 工具的後端

    在 CentOS 系統的默認設置中,以如下的方式使用這三個工具:

    1. 在守護進程 /etc/rc.d/init.d/sysstat 中使用 /usr/lib/sa/sadc -F -L - 命令創建當日記錄文件,文件爲 /var/log/sa/saDD,其中 DD 爲當天的日期。當系統重新啓動後,會向文件 /var/log/sa/saDD 輸出類似 11:37:16 AM LINUX RESTART 這樣的行信息。

    2. 在 cron 任務 /etc/cron.d/sysstat 中每隔10分鐘執行一次 /usr/lib/sa/sa1 1 1 命令,將信息寫入文件 /var/log/sa/saDD

    3. 在 cron 任務 /etc/cron.d/sysstat 中每天 23:53 執行一次 /usr/lib/sa/sa2 -A 命令,將當天的彙總信息寫入文件 /var/log/sa/saDD

    您可以修改 /etc/cron.d/sysstat 以適合您的需要。

    另外,文件 /var/log/sa/saDD 爲二進制文件,不能使用 more、less 等文本工具查看,必須用 sar 或 sadf 命令查看。

    sar

    在使用 Linux 系統時,常常會遇到各種各樣的問題,比如系統容易死機或者運行速度突然變慢,這時我們常常猜測:是否硬盤空間不足,是否內存不足,是否 I/O 出現瓶頸,還是系統的核心參數出了問題?這時,我們應該考慮使用 sar 工具對系統做一個全面瞭解,分析系統的負載狀況。

    sar(System Activity Reporter)是系統活動情況報告的縮寫。sar 工具將對系統當前的狀態進行取樣,然後通過計算數據和比例來表達系統的當前運行狀態。它的特點是可以連續對系統取樣,獲得大量的取樣數據;取樣數據和分析的結果都可以存入文件,所需的負載很小。 sar 是目前 Linux 上最爲全面的系統性能分析工具之一,可以從多方面對系統的活動進行報告,包括:文件的讀寫情況、系統調用的使用情況、磁盤I/O、CPU效率、內存使用狀況、進程活動及IPC有關的活動等。爲了提供不同的信息,sar 提供了豐富的選項、因此使用較爲複雜。

    sar 的命令格式

    sar 的命令格式爲:

    sar  [ -A ] [ -b ] [ -B ] [ -c ] [ -d ] [ -i interval ] [ -p ] [ -q ]
         [ -r ] [ -R ] [ -t ] [ -u ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ]
         [ -n { DEV | EDEV | NFS | NFSD | SOCK | ALL } ]
         [ -x { pid | SELF | ALL } ] [ -X { pid | SELF | ALL } ] 
         [ -I { irq | SUM | ALL | XALL } ] [ -P { cpu | ALL } ]
         [ -o [ filename ] | -f [ filename ] ]
         [ -s [ hh:mm:ss ] ] [ -e [ hh:mm:ss ] ] 
         [ interval [ count ] ]

    其中:

    • interval : 爲取樣時間間隔

    • count : 爲輸出次數,若省略此項,默認值爲 1

    常用選項:

    選項 說明
    -A 等價於 -bBcdqrRuvwWy -I SUM -I XALL -n ALL -P ALL
    -b 顯示I/O和傳送速率的統計信息
    -B 輸出內存頁面的統計信息
    -c 輸出進程統計信息,每秒創建的進程數
    -d 輸出每一個塊設備的活動信息
    -i interval 指定間隔時長,單位爲秒
    -p 顯示友好設備名字,以方便查看,也可以和-d 和-n 參數結合使用,比如 -dp 或-np
    -q 輸出進程隊列長度和平均負載狀態統計信息
    -r 輸出內存和交換空間的統計信息
    -R 輸出內存頁面的統計信息
    -t 讀取 /var/log/sa/saDD 的數據時顯示其中記錄的原始時間,如果沒有這個參數使用用戶的本地時間
    -u 輸出CPU使用情況的統計信息
    -v 輸出inode、文件和其他內核表的統計信息
    -V 輸出版本號信息
    -w 輸出系統交換活動信息
    -W 輸出系統交換的統計信息
    -y 輸出TTY設備的活動信息
    -n {DEV|EDEV|NFS|NFSD|SOCK|ALL} 分析輸出網絡設備狀態統計信息。
    DEV 報告網絡設備的統計信息
    EDEV 報告網絡設備的錯誤統計信息
    NFS 報告 NFS 客戶端的活動統計信息
    NFSD 報告 NFS 服務器的活動統計信息
    SOCK 報告網絡套接字(sockets)的使用統計信息
    ALL 報告所有類型的網絡活動統計信息
    -x {pid|SELF|ALL} 輸出指定進程的統計信息。
    pid 用 pid 指定特定的進程
    SELF 表示 sar 自身
    ALL 表示所有進程
    -X {pid|SELF|ALL} 輸出指定進程的子進程的統計信息
    -I {irq|SUM|ALL|XALL} 輸出指定中斷的統計信息。
    irq 指定中斷號
    SUM 指定輸出每秒接收到的中斷總數
    ALL 指定輸出前16箇中斷
    XALL 指定輸出全部的中斷信息
    -P {cpu|ALL} 輸出指定 CPU 的統計信息
    -o filename 將輸出信息保存到文件 filename
    -f filename 從文件 filename 讀取數據信息。filename 是使用-o 選項時生成的文件。
    -s hh:mm:ss 指定輸出統計數據的起始時間
    -e hh:mm:ss 指定輸出統計數據的截至時間,默認爲18:00:00

    sar 使用舉例

    從 /var/log/sa/saDD 中讀取累計統計信息

    1、輸出CPU使用情況的統計信息

    [root@cnetos5 ~]# sar
    [root@cnetos5 ~]# sar -u
    Linux 2.6.18-53.el5 (cnetos5)   01/22/2008
    
    12:00:01 AM       CPU     %user     %nice   %system   %iowait    %steal     %idle
    12:10:01 AM       all      0.02      0.00      0.14      0.01      0.00     99.84
    12:20:01 AM       all      0.02      0.00      0.12      0.01      0.00     99.86
    12:30:01 AM       all      0.01      0.00      0.12      0.01      0.00     99.86
    Average:          all      0.03      0.00      0.13      0.01      0.00     99.84

    輸出項說明:

    CPU all 表示統計信息爲所有 CPU 的平均值。
    %user 顯示在用戶級別(application)運行使用 CPU 總時間的百分比。
    %nice 顯示在用戶級別,用於nice操作,所佔用 CPU 總時間的百分比。
    %system 在覈心級別(kernel)運行所使用 CPU 總時間的百分比。
    %iowait 顯示用於等待I/O操作佔用 CPU 總時間的百分比。
    %steal 管理程序(hypervisor)爲另一個虛擬進程提供服務而等待虛擬 CPU 的百分比。
    %idle 顯示 CPU 空閒時間佔用 CPU 總時間的百分比。

     

     

     

    1. 若 %iowait 的值過高,表示硬盤存在I/O瓶頸

    2. 若 %idle 的值高但系統響應慢時,有可能是 CPU 等待分配內存,此時應加大內存容量

    3. 若 %idle 的值持續低於 10,則系統的 CPU 處理能力相對較低,表明系統中最需要解決的資源是 CPU。

     

     

     

    2、顯示I/O和傳送速率的統計信息

    [root@cnetos5 ~]# sar -b
    Linux 2.6.18-53.el5 (cnetos5)   01/22/2008
    
    12:00:01 AM       tps      rtps      wtps   bread/s   bwrtn/s
    12:10:01 AM      1.58      0.00      1.58      0.00     16.71
    12:20:01 AM      1.09      0.00      1.09      0.00     10.85
    12:30:01 AM      1.08      0.00      1.08      0.00     10.74
    Average:         1.24      0.00      1.24      0.00     12.70

    輸出項說明:

    tps 每秒鐘物理設備的 I/O 傳輸總量
    rtps 每秒鐘從物理設備讀入的數據總量
    wtps 每秒鐘向物理設備寫入的數據總量
    bread/s 每秒鐘從物理設備讀入的數據量,單位爲 塊/s
    bwrtn/s 每秒鐘向物理設備寫入的數據量,單位爲 塊/s

    3、輸出內存頁面的統計信息

    [root@cnetos5 ~]# sar -B
    Linux 2.6.18-53.el5 (cnetos5)   01/22/2008
    
    12:00:01 AM  pgpgin/s pgpgout/s   fault/s  majflt/s
    12:10:01 AM      0.00      4.17      9.74      0.00
    12:20:01 AM      0.00      2.71      2.24      0.00
    12:30:01 AM      0.00      2.69      2.25      0.00
    Average:         0.00      3.17      4.07      0.00

    輸出項說明:

    pgpgin/s 每秒鐘從磁盤讀入的系統頁面的 KB 總數
    pgpgout/s 每秒鐘向磁盤寫出的系統頁面的 KB 總數
    fault/s 系統每秒產生的頁面失效(major + minor)數量
    majflt/s 系統每秒產生的頁面失效(major)數量

    4、輸出每秒創建的進程數的進程統計信息

    [root@cnetos5 ~]# sar -c
    Linux 2.6.18-53.el5 (cnetos5)   01/22/2008
    
    12:00:01 AM    proc/s
    12:10:01 AM      0.05
    12:20:01 AM      0.03
    12:30:01 AM      0.03
    Average:         0.03

    輸出項說明:

    proc/s 每秒鐘創建的進程數

    5、輸出網絡設備狀態的統計信息

    [root@cnetos5 ~]# sar -n DEV |grep eth0
    12:00:01 AM     IFACE   rxpck/s   txpck/s   rxbyt/s   txbyt/s   rxcmp/s   txcmp/s  rxmcst/s
    12:10:01 AM      eth0      0.59      0.92     41.57    893.98      0.00      0.00      0.00
    12:20:01 AM      eth0      0.55      0.88     37.50    859.56      0.00      0.00      0.00
    12:30:01 AM      eth0      0.55      0.86     38.17    871.98      0.00      0.00      0.00
    Average:         eth0      0.29      0.42     21.05    379.29      0.00      0.00      0.00

    輸出項說明:

    IFACE 網絡設備名
    rxpck/s 每秒接收的包總數
    txpck/s 每秒傳輸的包總數
    rxbyt/s 每秒接收的字節(byte)總數
    txbyt/s 每秒傳輸的字節(byte)總數
    rxcmp/s 每秒接收壓縮包的總數
    txcmp/s 每秒傳輸壓縮包的總數
    rxmcst/s 每秒接收的多播(multicast)包的總數

    6、輸出網絡設備狀態的統計信息(查看網絡設備故障)

    [root@cnetos5 ~]# sar -n EDEV |egrep 'eth0|IFACE'
    12:00:01 AM     IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram/s  rxfifo/s  txfifo/s
    12:10:01 AM      eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    12:20:01 AM      eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    12:30:01 AM      eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    Average:         eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

    輸出項說明:

    IFACE 網絡設備名
    rxerr/s 每秒接收的壞包總數
    txerr/s 傳輸包時每秒發生錯誤的總數
    coll/s 傳輸包時每秒發生衝突(collision)的總數
    rxdrop/s 接收包時,由於缺乏緩存,每秒丟棄(drop)包的數量
    txdrop/s 傳輸包時,由於缺乏緩存,每秒丟棄(drop)包的數量
    txcarr/s 傳輸包時,每秒發生的傳輸錯誤(carrier-error)的數量
    rxfram/s 接收包時,每秒發生幀校驗錯誤(frame alignment error)的數量
    rxfifo/s 接收包時,每秒發生隊列(FIFO)一出錯誤的數量
    txfifo/s 傳輸包時,每秒發生隊列(FIFO)一出錯誤的數量

    7、輸出進程隊列長度和平均負載狀態統計信息

    [root@cnetos5 ~]# sar -q
    Linux 2.6.18-53.el5 (cnetos5)   01/22/2008
    
    12:00:01 AM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
    12:10:01 AM         0        85      0.02      0.01      0.00
    12:20:01 AM         0        85      0.01      0.00      0.00
    12:30:01 AM         0        85      0.03      0.01      0.00
    Average:            0        85      0.01      0.00      0.00

    輸出項說明:

    runq-sz 運行隊列的長度(等待運行的進程數)
    plist-sz 進程列表中進程(processes)和線程(threads)的數量
    ldavg-1 最後1分鐘的系統平均負載(System load average)
    ldavg-5 過去5分鐘的系統平均負載
    ldavg-15 過去15分鐘的系統平均負載

    8、輸出內存和交換空間的統計信息

    [root@cnetos5 ~]# sar -r
    Linux 2.6.18-53.el5 (cnetos5)   01/22/2008
    
    12:00:01 AM kbmemfree kbmemused  %memused kbbuffers  kbcached kbswpfree kbswpused  %swpused  kbswpcad
    12:10:01 AM    262068    253408     49.16     43884    156456   1048568         0      0.00         0
    12:20:01 AM    261572    253904     49.26     44580    156448   1048568         0      0.00         0
    12:30:01 AM    260704    254772     49.42     45124    156472   1048568         0      0.00         0
    Average:       259551    255925     49.65     46453    156470   1048568         0      0.00         0

    輸出項說明:

    kbmemfree 可用的空閒內存數量,單位爲 KB
    kbmemused 已使用的內存數量(不包含內核使用的內存),單位爲 KB
    %memused 已使用內存的百分數
    kbbuffers 內核緩衝區(buffer)使用的內存數量,單位爲 KB
    kbcached 內核高速緩存(cache)數據使用的內存數量,單位爲 KB
    kbswpfree 可用的空閒交換空間數量,單位爲 KB
    kbswpused 已使用的交換空間數量,單位爲 KB
    %swpused 已使用交換空間的百分數
    kbswpcad 交換空間的高速緩存使用的內存數量

    9、輸出內存頁面的統計信息

    [root@cnetos5 ~]# sar -R
    Linux 2.6.18-53.el5 (cnetos5)   01/22/2008
    
    12:00:01 AM   frmpg/s   bufpg/s   campg/s
    12:10:01 AM     -0.10      0.23      0.01
    12:20:01 AM     -0.21      0.29     -0.00
    12:30:01 AM     -0.36      0.23      0.01
    Average:        -0.21      0.22      0.00

    輸出項說明:

    frmpg/s 每秒系統中空閒的內存頁面(memory page freed)數量
    bufpg/s 每秒系統中用作緩衝區(buffer)的附加內存頁面(additional memory page)數量
    campg/s 每秒系統中高速緩存的附加內存頁面(additional memory pages cached)數量

    10、輸出inode、文件和其他內核表的信息

    [root@cnetos5 ~]# sar -v
    Linux 2.6.18-53.el5 (cnetos5)   01/22/2008
    
    12:00:01 AM dentunusd   file-sz  inode-sz  super-sz %super-sz  dquot-sz %dquot-sz  rtsig-sz %rtsig-sz
    12:10:01 AM      7253       576      5126         0      0.00         0      0.00         0      0.00
    12:20:01 AM      7253       576      5126         0      0.00         0      0.00         0      0.00
    12:30:01 AM      7253       576      5126         0      0.00         0      0.00         0      0.00
    Average:         7253       589      5125         0      0.00         0      0.00         0      0.00

    輸出項說明:

    dentunusd 目錄高速緩存中未被使用的條目數量
    file-sz 文件句柄(file handle)的使用數量
    inode-sz i節點句柄(inode handle)的使用數量
    super-sz 由內核分配的超級塊句柄(super block handle)數量
    %super-sz 已分配的超級塊句柄佔總超級塊句柄的百分比
    dquot-sz 已經分配的磁盤限額條目數量
    %dquot-sz 分配的磁盤限額條目數量佔總磁盤限額條目的百分比
    rtsig-sz 已排隊的 RT 信號的數量
    %rtsig-sz 已排隊的 RT 信號佔總 RT 信號的百分比

    11、輸出系統交換活動信息

    [root@cnetos5 ~]# sar -w
    Linux 2.6.18-53.el5 (cnetos5)   01/22/2008
    
    12:00:01 AM   cswch/s
    12:10:01 AM     44.74
    12:20:01 AM     44.41
    12:30:01 AM     44.41
    Average:        44.50

    輸出項說明:

    cswch/s 每秒的系統上下文切換數量

    12、 輸出系統交換的統計信息

    [root@cnetos5 ~]# sar -W
    Linux 2.6.18-53.el5 (cnetos5)   01/22/2008
    
    12:00:01 AM  pswpin/s pswpout/s
    12:10:01 AM      0.00      0.00
    12:20:01 AM      0.00      0.00
    12:30:01 AM      0.00      0.00
    Average:         0.00      0.00

    輸出項說明:

    pswpin/s 每秒系統換入的交換頁面(swap page)數量
    pswpout/s 每秒系統換出的交換頁面(swap page)數量

    13、輸出TTY設備的活動信息

    [root@cnetos5 ~]# sar -y
    Linux 2.6.18-53.el5 (cnetos5)   01/22/2008
    
    12:00:01 AM       TTY   rcvin/s   xmtin/s framerr/s prtyerr/s     brk/s   ovrun/s
    12:10:01 AM         0      0.00      0.00      0.00      0.00      0.00      0.00
    12:10:01 AM         1      0.00      0.00      0.00      0.00      0.00      0.00
    12:20:01 AM         0      0.00      0.00      0.00      0.00      0.00      0.00
    12:20:01 AM         1      0.00      0.00      0.00      0.00      0.00      0.00
    12:30:01 AM         0      0.00      0.00      0.00      0.00      0.00      0.00
    12:30:01 AM         1      0.00      0.00      0.00      0.00      0.00      0.00
    ………………
    Average:            0      0.00      0.00      0.00      0.00      0.00      0.00
    Average:            1      0.00      0.00      0.00      0.00      0.00      0.00

    輸出項說明:

    TTY TTY 串行設備號
    rcvin/s 每秒接收的中斷數量
    xmtin/s 每秒傳送的中斷數量
    framerr/s 每秒發生的幀錯誤數(frame error)量
    prtyerr/s 每秒發生的奇偶校驗錯誤(parity error)數量
    brk/s 每秒發生的暫停(break)數量
    ovrun/s 每秒發生的溢出錯誤(overrun error)數量

    14、顯示全面的累計統計信息

    # sar -A

    15、默認配置不提供的累計統計信息

    [root@cnetos5 ~]# sar -d
    Requested activities not available in file
    [root@cnetos5 ~]# sar -x ALL
    Requested activities not available in file
    [root@cnetos5 ~]# sar -X ALL
    Requested activities not available in file

     

     

     

    1. 默認情況下,爲了防止統計數據文件 /var/log/sa/saDD 迅速增大,/usr/lib/sa/sadc 沒有記錄每個塊設備的統計信息。

    2. 可以在 -d -x -X 參數後添加取樣參數獲得即時統計信息。

    3. 帶有 -x -X 選項的 sar 命令從來不能記錄到二進制統計數據文件 。

     

     

     

    查看即時統計信息

    1、使用取樣選項查看即時統計信息

    例如:每30秒取樣一次,連續取樣5次

    # sar -n DEV 30 5
    # sar -u  30 5

    2、輸出和讀取統計信息文件

    例如:

    # sar -u  30 5 -o sar-dump-001
    # sar -u -f  sar-dump-001

    3、輸出每一個塊設備的活動信息

    # sar -dp 5 2
    Linux 2.6.18-53.el5 (cnetos5)   01/22/2008
    
    07:12:11 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
    07:12:16 AM       sda      0.40      0.00     17.56     44.00      0.00      1.00      1.00      0.04
    07:12:16 AM       sdb      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    
    07:12:16 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
    07:12:21 AM       sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    07:12:21 AM       sdb      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    
    Average:          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
    Average:          sda      0.20      0.00      8.78     44.00      0.00      1.00      1.00      0.02
    Average:          sdb      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

    輸出項說明:

    DEV 正在監視的塊設備
    tps 每秒鐘物理設備的 I/O 傳輸總量
    rd_sec/s 每秒從設備讀取的扇區(sector)數量
    wr_sec/s 每秒向設備寫入的扇區(sector)數量
    avgrq-sz 發給設備請求的平均扇區數
    avgqu-sz 發給設備請求的平均隊列長度
    await 設備 I/O 請求的平均等待時間(單位爲毫秒)
    svctm 設備 I/O 請求的平均服務時間(單位爲毫秒)
    %util 在 I/O 請求發送到設備期間,佔用 CPU 時間的百分比。用於體現設備的帶寬利用率。

     

     

     

    1. avgqu-sz 的值較低時,設備的利用率較高。

    2. 當 %util 的值接近 100% 時,表示設備帶寬已經佔滿。

     

     

     

    iostat 的命令格式

    iostat 用於輸出CPU和磁盤I/O相關的統計信息。命令格式爲:

    iostat [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ device [ ... ]  | ALL ] 
      [ -p [ device | ALL ] ] [ interval [ count ] ]

    其中:

    • interval : 爲取樣時間間隔

    • count : 爲輸出次數,若指定了取樣時間間隔且省略此項,將不斷產生統計信息

    常用選項:

    選項 說明
    -c 僅顯示CPU統計信息。與-d選項互斥。
    -d 僅顯示磁盤統計信息。與-c選項互斥。
    -k 以KB爲單位顯示每秒的磁盤請求數。默認單位塊。
    -m 以MB爲單位顯示每秒的磁盤請求數。默認單位塊。
    -p {device|ALL} 用於顯示塊設備及系統分區的統計信息。與-x選項互斥。
    -t 在輸出數據時,打印蒐集數據的時間。
    -V 打印版本號信息。
    -x 輸出擴展信息。

    iostat 使用舉例

    下面給出幾個例子:

    # 顯示一條包括所有的CPU和設備吞吐率的統計信息
    # iostat
    Linux 2.6.18-53.el5 (cnetos5)   01/21/2008
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.10    0.04    0.37    0.07    0.00   99.42
    
    Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
    sda               1.44        16.79        10.58     800430     504340
    sdb               0.01         0.07         0.00       3314          8
    sdc               0.86         8.56         0.00     407892         24
    
    # 每隔5秒顯示一次設備吞吐率的統計信息(單位爲 塊/s)
    # iostat -d 5
    
    # 每隔5秒顯示一次設備吞吐率的統計信息(單位爲 KB/s),共輸出3次
    # iostat -dk 5 3
    
    # 每隔2秒顯示一次 sda 及上面所有分區的統計信息,共輸出5次
    # iostat -p sda 2 5
    
    # 每隔2秒顯示一次 sda 和 sdb 兩個設備的擴展統計信息,共輸出6次
    # iostat -x sda sdb 2 6
    Linux 2.6.18-53.el5 (cnetos5)   01/21/2008
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.10    0.04    0.37    0.07    0.00   99.42
    
    Device:     rrqm/s   wrqm/s   r/s   w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
    sda           0.17     0.84  0.96  0.47    16.67    10.56    19.01     0.01    7.11   1.25   0.18
    sdb           0.00     0.00  0.01  0.00     0.07     0.00     5.16     0.00    0.22   0.19   0.00
    
    …………

    iostat 的輸出項說明

    avg-cpu 部分輸出項說明:

    %user 在用戶級別運行所使用的 CPU 的百分比。
    %nice nice 操作所使用的 CPU 的百分比。
    %system 在覈心級別(kernel)運行所使用 CPU 的百分比。
    %iowait CPU 等待硬件 I/O 所佔用 CPU 的百分比。
    %steal 當管理程序(hypervisor)爲另一個虛擬進程提供服務而等待虛擬 CPU 的百分比。
    %idle CPU 空閒時間的百分比。

    Device 部分基本輸出項說明:

    tps 每秒鐘物理設備的 I/O 傳輸總量。
    Blk_read 讀入的數據總量,單位爲塊。
    Blk_wrtn 寫入的數據總量,單位爲塊。
    kB_read 讀入的數據總量,單位爲KB。
    kB_wrtn 寫入的數據總量,單位爲KB。
    MB_read 讀入的數據總量,單位爲MB。
    MB_wrtn 寫入的數據總量,單位爲MB。
    Blk_read/s 每秒從驅動器讀入的數據量,單位爲 塊/s。
    Blk_wrtn/s 每秒向驅動器寫入的數據量,單位爲 塊/s。
    kB_read/s 每秒從驅動器讀入的數據量,單位爲KB/s。
    kB_wrtn/s 每秒向驅動器寫入的數據量,單位爲KB/s。
    MB_read/s 每秒從驅動器讀入的數據量,單位爲MB/s。
    MB_wrtn/s 每秒向驅動器寫入的數據量,單位爲MB/s。

    Device 部分擴展輸出項說明:

    rrqm/s 將讀入請求合併後,每秒發送到設備的讀入請求數。
    wrqm/s 將寫入請求合併後,每秒發送到設備的寫入請求數。
    r/s 每秒發送到設備的讀入請求數。
    w/s 每秒發送到設備的寫入請求數。
    rsec/s 每秒從設備讀入的扇區數。
    wsec/s 每秒向設備寫入的扇區數。
    rkB/s 每秒從設備讀入的數據量,單位爲 KB/s。
    wkB/s 每秒向設備寫入的數據量,單位爲 KB/s。
    rMB/s 每秒從設備讀入的數據量,單位爲 MB/s。
    wMB/s 每秒向設備寫入的數據量,單位爲 MB/s。
    avgrq-sz 發送到設備的請求的平均大小,單位爲扇區。
    avgqu-sz 發送到設備的請求的平均隊列長度。
    await I/O請求平均執行時間。包括髮送請求和執行的時間。單位爲毫秒。
    svctm 發送到設備的I/O請求的平均執行時間。單位爲毫秒。
    %util 在I/O請求發送到設備期間,佔用CPU時間的百分比。用於顯示設備的帶寬利用率。當這個值接近100%時,表示設備帶寬已經佔滿。

    mpstat

    mpstat 的命令格式

    mpstat 輸出每一個 CPU 的運行狀況,爲多處理器系統中的 CPU 利用率提供統計信息。命令格式爲:

    mpstat [ -P { cpu | ALL } ] [ -V ] [ interval [ count ] ]

    其中:

    • interval : 爲取樣時間間隔。指定0則輸出自系統啓動後的一個統計信息。

    • count : 爲輸出次數。若指定了取樣時間間隔且省略此項,將不斷產生統計信息。

    常用選項:

    選項 說明
    -P {cpu|ALL} 指定 CPU。用 CPU-ID 指定,CPU-ID 是從0開始的,即第一個CPU爲0。ALL 表示所有CPU。
    -V 輸出版本號信息。

    mpstat 使用舉例

    下面給出幾個例子:

    # 輸出所有 CPU 使用情況的統計信息。
    # mpstat
    Linux 2.6.18-53.el5 (cnetos5)   01/21/2008
    
    10:39:06 AM  CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
    10:39:06 AM  all    0.10    0.04    0.31    0.06    0.04    0.01    0.00   99.45   1012.99
    
    # 輸出第一個 CPU 使用情況的統計信息。
    # mpstat -P 0
    Linux 2.6.18-53.el5 (cnetos5)   01/21/2008
    
    10:41:03 AM  CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
    10:41:03 AM    0    0.09    0.02    0.40    0.09    0.08    0.01    0.00   99.32   1012.79
    
    # 每隔2秒輸出所有CPU的統計信息,共輸出5次。
    # mpstat 2 5
    
    # 每隔2秒輸出一次所有CPU的統計信息,共輸出5次。
    # mpstat -P ALL 2 5
    
    # 每隔2秒輸出一次第二個CPU的統計信息,共輸出5次。
    # mpstat -P 1 2 5

    mpstat 輸出項說明

    CPU 在多CPU系統裏,每個CPU有一個ID號,第一個CPU爲0。all表示統計信息爲所有CPU的平均值。
    %user 顯示在用戶級別運行所佔用CPU總時間的百分比。
    %nice 顯示在用戶級別,用於nice操作,所佔用CPU總時間的百分比。
    %sys 顯示在kernel級別運行所佔用CPU總時間的百分比。注意:這個值並不包括服務中斷和softirq。
    %iowait 顯示用於等待I/O操作時,佔用CPU總時間的百分比。
    %irq 顯示用於中斷操作,佔用CPU總時間的百分比。
    %soft 顯示用於softirq操作,佔用CPU總時間的百分比。
    %steal 管理程序(hypervisor)爲另一個虛擬進程提供服務而等待虛擬 CPU 的百分比。
    %idle 顯示CPU在空閒狀態,佔用CPU總時間的百分比。
    intr/s

    顯示CPU每秒接收到的中斷總數。

 

 

**************************

SAR

NAME:

         SAR報告,收集,保存系統活動信息

語法:

sar  [ -A ] [ -b ] [ -B ] [ -C ] [ -d ] [ -h ] [ -i interval ] [ -m ] [-p ] [ -q ] [ -r ] [ -R ] [ -S ] [ -t ] [ -u [ ALL ] ] [ -v ] [ -V ]  [-w  ]  [  -W  ] [ -y ] [ -j { ID | LABEL | PATH | UUID | ... } ] [ -n {keyword [,...] | ALL } ] [ -I { int [,...] | SUM | ALL | XALL } ] [-P{ cpu [,...] | ALL } ] [ -o [ filename ] | -f [ filename ] ] [ --legacy] [ -s [ hh:mm:ss ] ] [ -e [ hh:mm:ss ] ] [ interval [ count ] ]

說明:

Sar命令會把收集到的系統活動信息寫入到標準輸出。收集到的值根據interval和count不同而不同,如果沒有interval值,sar命令會顯示從啓動到現在的平均值。如果有interval沒有count,那麼信息會一直生成。收集到的信息也可以通過-o輸出到文件上。如果沒有指定文件路徑,sar會標準系統活動每天生成一個文件,在/var/log/sa/sadd,其中dd是當前日期。

 

Sar命令獲取的並且寫入到標準輸出前,記錄到文件裏面,這個文件可以用-o指定,默認被存在標準系統活動每日文件中。可以使用-f來讀取這些文件中的數據。

 

如果不用-P,會報告系統範圍統計信息,並計算他們的平均值。如果使用-P可以指定特定的處理器,如果是用-P ALL,會報告所有的CPU,和所有處理器的全局統計信息。

 

然後可以使用選項來選擇信息,如果不指定選項那麼查CPU活動,-A=-bBdqrRSvwWy -I SUM -I XALL –n ALL -u ALL -P ALL.

 

 

選項:

         -A               和-bBdqrRSuvwWy -I SUM -I XALL –n ALL -u ALL -P ALL相同

-b               報告io傳輸率統計

-B               報告分頁信息,2.5內核版本之後纔可用

-C               從文件中讀取時,讓sar顯示由sabc輸入的comment

-d               報告每個塊設備(2.4內核之後),dev列中,爲devm-n,m爲major,n爲minor,在2.5之前只是一個順序值。加-p參數dev會顯示的比較可讀。用-j來指定設備名類型。

                   注意,磁盤活動依賴與sabc選項 –S DISK或-S XDISK。

-e               設置報告的結束時間,默認結束時間是18:00:00,24小時制,這個選項可以在讀寫文件的時候使用,-f,-o

-f                從文件中讀取,這個文件由-o創建,默認爲/var/log/sa/sadd。

-h               幫助

-i                和直接用[interval]類似,獲取數據間隔。

-I                統計中斷髮送int [,...] | SUM | ALL | XALL },int+終端號指定查詢某個特定的中斷,SUM對所有中斷合計,ALL 前16箇中斷,XALL統計所有中斷。

-j                { ID | LABEL | PATH | UUID | ... }指定設備名類型

--legacy    啓用讀老的/var/log/sa/sadd文件。RH6.3之後修改了/var/log/sa/sadd文件的格式。

-m              報告CPU頻率統計,依賴於sabc選項-S POWER

-n               { keyword [,...] | ALL }網絡統計報告,這裏的關鍵字爲:DEV, EDEV, NFS, NFSD, SOCK, IP, EIP, ICMP, EICMP, TCP, ETCP, UDP, SOCK6, IP6, EIP6, ICMP6, EICMP6 和UDP6.

-o               輸出的二進制文件,默認爲/var/log/sa/sadd,可以用-f讀取來分析

-P               { cpu [,...] | ALL }返回指定cpu的統計信息,指定ALL則爲全部

-p               讓設備名更加可讀,會把devm-n轉化爲可讀的設備名。和iostat –N用法類似

-q               報告隊列長度和負荷平均值

-r                內存使用報告

-R               內存統計報告

-s               [ hh:mm:ss ]設置sar抓數據開始時間默認08:00:00,用-f來讀取生成的數據

-S               Swap空間使用報告

-t                在從文件讀取時,使用文件的創建時的日期,如果不加則使用機器本地的日期(試了一下沒啥變化)

-u               [ ALL ]CPU使用率報告,通過ALL可以顯示全部字段

-v               報告inode,file,其他內核表,

-V               查看版本號

-w              系統切換計數報告

-W             swap切換報告

-y               報告TTY活動

報告:

         I/O模式(-b)

tps  

每秒鐘發送在物理設備上的傳輸次數

rtps 

每秒鐘發送在物理設備上的讀的傳輸次數

wtps        

每秒鐘發送在物理設備上的寫傳輸次數

bread/s   

每秒鐘讀取block的個數,2.4內核和扇區相同,2.4之後是512B,老的內核不確定。

                   bwrtn/s

                            每秒鐘寫入block個數

       

         內存頁模式(-B)

                   pgpgin/s

                            從磁盤中pagein的KB,來的內核2.2.X是blocks/s

                   pgpgout/s

                            pageout到從盤的KB,來的內核2.2.X是blocks/s

                   fault/s

                            每秒頁錯誤次數,major+minor次數,major引起物理io,minor不引起物理io

         majflt/s

                            每秒major頁錯誤次數,發送IO

                   pgfree/s

                            每秒被放到free list的頁個數

                   pgscank/s

                            每秒被kswapd daemon掃描的頁個數

         pgscand/s

                            每秒直接被掃描的頁個數

                   pgsteal/s

                            爲了保證內存需求的安全,每秒從cache(pagecache,swapcache)回收的頁數

                   %vmeff

%vmeff=pgsteal/pgscan,反應了頁回收效率,如果接近100%,那麼就表示頁基本上來至於不活動隊列尾(tail of inactive list),如果百分比很低(少於30%),那麼虛擬內存有點困難,如果爲0表示每秒被掃描頁爲0.

 

         塊設備模式(-d)

                   tps

                            每秒鐘發送到設備的傳輸次數

                   rd_sec/s

                            每秒鐘從設備上讀取的扇區數,512B

                   wr_sec/s

                            每秒鐘寫入到設備上的扇區數,512B

                   avgrq-sz

                            平均請求的扇區數

                   avgqu-sz

                            平均請求的設備隊列長度

                   await

                            從I/O請求到被完成花的平均時間,包含花費在隊列裏面的時間和執行時間。

                   svctime

                            I/O請求被執行的時間

                   %util

當請求I/O發生的時候,cpu的使用率(就是設備使用的帶寬),當設備飽和,CPU會接近100%。

         Power模式(-m)

                   MHz

                            cpu頻率

         網絡模式(-n)

                   略

         隊列長度和平均負荷(-q)

                   runq-sz

                            運行隊列長度(等待run time的任務個數)

                   plist-sz

                            任務列表中的任務個數

                   ldavg-1

最近1分鐘內系統負荷平均值,負荷平均值=特定間隔內可運行的任務(R狀態)+不可中斷睡眠的任務(D狀態)

                   ldavg-5

                            最近5分鐘系統負荷平均值

                   ldavg-15

                            最近15分鐘系統負荷平均值

         內存使用模式(-r)

                   kbmemfree

                            可用內存量單位kb

                   kbmemused

                            被使用的內存kb,不計算被內核使用的內存

                   %memused

                            內存使用百分比

                   kbbuffer

                            被內核作爲buffer使用的內存單位kb

                   kbcached

                            被內核當cache使用的內存單位kb

                   kbcommit

當前工作負荷要使用的內存。用來評估需要多少RAM/swap來保證不會超出內存

                   %commit

當前需要的內存/RAM+swap,要保證大於100%,因爲內核通常都overcommit內存。

         內存統計模式(-R)

                   frmpg/s

每秒內存釋放的頁數。負數說明系統分配的頁數,注意根據機器結構不同頁大小也不同,4kb或者8kb。

                   bufpg/s

                            每秒buffer使用額外的page數,負數表示buffer使用的頁數變小。

                   campg/s

                            每秒cache使用額外的page數,負數表示cache頁數變小。

         Swap空間使用模式(-S)

                   kbswpfree

                            swap空間可用大小單位kb

                   kbswpused

                            已經被使用的swap空間kb

                   %swpused

                            使用百分比

                   kbswpcad

swap內容被緩存在內存的kb (amount of cached swap memory in kilobytes)。這個內存是被換出,但是換入的時候依然在swap空間內的。如果需要內存,就不需要換出了,因爲已經在swap了可以減少I/O。

                   %swpcad

                            swap被緩存在內存的數據佔swap使用總空間的比率

         CPU使用率(-u)

                  %user

                            用戶級別程序使用的cpu比率,這個值包含虛擬處理器使用的時間

                   %usr

                            用戶級別程序使用的cpu比率,這個值不包含虛擬處理器使用的時間

                   %nice

                            nice優先級用戶級應用程序的cpu比率

                   %system

                            系統級(內核)cpu使用率,包含服務硬件的有時間和軟件中斷的時間

                   %sys

                            系統級(內核)cpu使用率,不包含服務硬件的有時間和軟件中斷的時間

                   %iowait

                            CPU空閒,並且有未完成I/O的時間

                   %steal

當hypervisor 爲另外一個虛擬處理器提供服務的時候,無意識的等待虛擬 C     PU或者CPU 的比率

                   %irq

                            CPU服務硬件中斷的時間

                   %soft

                            CPU服務軟終端的時間

                   %guest

                            用戶服務虛擬處理器時間

                   %idle

                            CPU空間,並且沒有未完成的磁盤I/O請求

         inode,file,內核表狀態(-v)

                   dentunusd

                            目錄cache中沒有使用的項

                   file-nr

                            系統所使用的文件句柄個數

                   inode-nr

                            inode句柄個數

                   pty-nr

                            pseudo-terminals使用的數量

         系統切換(-w)

                   proc/s

                            每秒進程創建個數

                   cswch/s

                            每秒上面文切換次數

         swap切換(-W)

                   pswpin/s

                            每秒swap in的頁數

                   pswpout/s

                            每秒swap out的頁數

         TTY設備報告(-y)

                   略

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章