萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> Linux如何使用sysstat中的命令

Linux如何使用sysstat中的命令

  sysstat是一個軟件包,擁有各種實用的系統工具,比如系統性能檢測工具,要想使用sysstat,就要對sysstat中的命令有所了解,下面小編就教大家Linux如何使用sysstat中的命令。

 Linux如何使用sysstat中的命令

  一、sar的最後兩個參數一般是interval count

  1、sar -u 1 5

  輸出CPU使用情況的統計信息,每秒輸出一次,一共輸出5次

  [root@stage1-new9 sysstat-10.0.5]# sar -u 1 5

  Linux 2.6.9-67.ELsmp (stage1-new9.intra99bill.com) 06/12/2012 _x86_64_ (8 CPU)

  11:34:43 AM CPU %user %nice %system %iowait %steal %idle

  11:34:44 AM all 0.00 0.00 0.00 0.00 0.00 100.00

  11:34:45 AM all 0.00 0.00 0.12 0.00 0.00 99.88

  11:34:46 AM all 0.00 0.00 0.00 0.00 0.00 100.00

  11:34:47 AM all 0.00 0.00 0.12 0.00 0.00 99.88

  11:34:48 AM all 0.00 0.00 0.00 0.00 0.00 100.00

  Average: all 0.00 0.00 0.05 0.00 0.00 99.95

  CPU all 表示統計信息為所有 CPU 的平均值。

  %user 顯示在用戶級別(application)運行使用CPU 總時間的百分比。

  %nice 顯示在用戶級別,用於nice操作,所占用CPU 總時間的百分比。

  %system 在核心級別(kernel)運行所使用CPU 總時間的百分比。

  %iowait 顯示用於等待I/O操作占用CPU 總時間的百分比。

  %steal 管理程序(hypervisor)為另一個虛擬進程提供服務而等待虛擬 CPU 的百分比。

  %idle 顯示 CPU 空閒時間占用CPU 總時間的百分比。

  Tips:

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

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

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

  2、sar -b 1 5

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

  17時09分07秒 tps rtps wtps bread/s bwrtn/s

  17時09分08秒 3.12 3.12 0.00 25.00 0.00

  17時09分09秒 89.58 6.25 83.33 141.67 733.33

  17時09分10秒 42.71 9.38 33.33 141.67 600.00

  17時09分11秒 2.11 2.11 0.00 16.84 0.00

  17時09分12秒 1.04 0.00 1.04 0.00 175.00

  Average: 27.77 4.18 23.59 65.14 302.30

  tps 每秒鐘物理設備的 I/O 傳輸總量

  rtps 每秒鐘從物理設備讀入的數據總量

  wtps 每秒鐘向物理設備寫入的數據總量

  bread/s 每秒鐘從物理設備讀入的數據量,單位為 塊/s

  bwrtn/s 每秒鐘向物理設備寫入的數據量,單位為 塊/s

上一頁12下一頁共2頁

  二、iostat

  # iostat -x 1 10 //每隔1秒統計一次,共顯示10次

  [root@stage1-new9 sysstat-10.0.5]# iostat -x 1 10

  Linux 2.6.9-67.ELsmp (stage1-new9.intra99bill.com) 06/12/2012 _x86_64_ (8 CPU)

  avg-cpu: %user %nice %system %iowait %steal %idle

  0.24 0.00 0.20 0.00 0.00 99.56

  Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util

  sda 0.00 0.59 0.01 0.71 0.13 5.28 15.07 0.00 4.51 3.81 4.51 0.52 0.04

  avg-cpu: %user %nice %system %iowait %steal %idle

  0.00 0.00 0.00 0.00 0.00 100.00

  Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util

  sda 0.00 8.00 0.00 2.00 0.00 40.00 40.00 0.00 0.00 0.00 0.00 0.00 0.00

  avg-cpu: %user %nice %system %iowait %steal %idle

  0.00 0.00 0.00 0.00 0.00 100.00

  rrqm/s: 每秒進行 merge 的讀操作數目。即 delta(rmerge)/s

  wrqm/s: 每秒進行 merge 的寫操作數目。即 delta(wmerge)/s

  r/s: 每秒完成的讀 I/O 設備次數。即 delta(rio)/s

  w/s: 每秒完成的寫 I/O 設備次數。即 delta(wio)/s

  rsec/s: 每秒讀扇區數。即 delta(rsect)/s

  wsec/s: 每秒寫扇區數。即 delta(wsect)/s

  rkB/s: 每秒讀K字節數。是 rsect/s 的一半,因為每扇區大小為512字節。(需要計算)

  wkB/s: 每秒寫K字節數。是 wsect/s 的一半。(需要計算)

  avgrq-sz: 平均每次設備I/O操作的數據大小 (扇區)。delta(rsect+wsect)/delta(rio+wio)

  avgqu-sz: 平均I/O隊列長度。即 delta(aveq)/s/1000 (因為aveq的單位為毫秒)。

  await: 平均每次設備I/O操作的等待時間 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)

  svctm: 平均每次設備I/O操作的服務時間 (毫秒)。即 delta(use)/delta(rio+wio)

  %util: 一秒中有百分之多少的時間用於 I/O 操作,或者說一秒中有多少時間 I/O 隊列是非空的。即 delta(use)/s/1000 (因為use的單位為毫秒)

  如果 %util 接近 100%,說明產生的I/O請求太多,I/O系統已經滿負荷,該磁盤可能存在瓶頸。

  idle小於70% IO壓力就較大了,一般讀取速度有較多的wait。 同時可以結合vmstat 查看查看b參數(等待資源的進程數)和wa參數(IO等待所占用的CPU時間的百分比,高過30%時IO壓力高)

  另外還可以參考:

  svctm 一般要小於 await (因為同時等待的請求的等待時間被重復計算了),svctm 的大小一般和磁盤性能有關,CPU/內存的負荷也會對其有影響,請求過多也會間接導致 svctm 的增加。await 的大小一般取決於服務時間(svctm) 以及 I/O 隊列的長度和 I/O 請求的發出模式。如果 svctm 比較接近 await,說明 I/O 幾乎沒有等待時間;如果 await 遠大於 svctm,說明 I/O 隊列太長,應用得到的響應時間變慢,如果響應時間超過了用戶可以容許的范圍,這時可以考慮更換更快的磁盤,調整內核 elevator 算法,優化應用,或者升級 CPU。

  隊列長度(avgqu-sz)也可作為衡量系統 I/O 負荷的指標,但由於 avgqu-sz 是按照單位時間的平均值,所以不能反映瞬間的 I/O 問題。

  上面就是Linux使用sysstat命令的方法介紹了,當然,sysstatf中的命令不止這些,本文介紹的是sysstat比較常用的命令,也是需要掌握的命令。

上一頁12 下一頁共2頁
copyright © 萬盛學電腦網 all rights reserved