使用iostat監控磁碟I/O

靜以致遠√團團發表於2014-07-19

iostat-IO實時監控

 

iostat 介紹與安裝

 

Aix&Linux 提供了兩個很是有用的用於磁碟 I/O 效能監控的命令:iostat 和 sar。 

iostat 命令主要透過觀察物理磁碟的活動時間以及平均傳輸速度。根據 iostat 命令孕育發生的報告,該工具的主要目的是透過監控磁碟的利用率,而探量觀測到系統中的 I/O 瓶頸。不同作業系統命令格局輸出格局略有不同,管理員可以透過檢視使用者手冊來確定它的用處。

 

[root@node1 ~]# yum install sysstat

Loaded plugins: rhnplugin, security

This system is not registered with RHN.

RHN support will be disabled.

Setting up Install Process

Resolving Dependencies

--&gt Running transaction check

---&gt Package sysstat.i386 0:7.0.2-3.el5 set to be updated

--&gt Finished Dependency Resolution

 

Dependencies Resolved

 

=========================================================================================

 Package             Arch             Version                  Repository           Size

=========================================================================================

Installing:

 sysstat             i386             7.0.2-3.el5              rhel5-4             170 k

 

Transaction Summary

=========================================================================================

Install      1 Package(s)         

Update       0 Package(s)         

Remove       0 Package(s)         

 

Total download size: 170 k

Is this ok [y/N]: Y

Downloading Packages:

Running rpm_check_debug

Running Transaction Test

Finished Transaction Test

Transaction Test Succeeded

Running Transaction

  Installing     : sysstat                                                           1/1 

Installed:

  sysstat.i386 0:7.0.2-3.el5                                                             

Complete!

 

[root@node1 ~]# iostat 

Linux 2.6.18-164.el5 (node1)    07/19/2014

 

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

           0.16    0.02    0.35    1.00    0.00   98.47

 

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

sda               4.21        68.87        70.68    4124769    4233124

sda1              0.01         0.04         0.00       2406         28

sda2              4.20        68.83        70.68    4122083    4233096

dm-0             10.79        68.08        68.32    4077474    4091952

dm-1              0.39         0.74         2.36      44328     141144

sr0               0.01         0.03         0.00       2008          0

 

 

iostat語法

[root@node1 ~]# iostat --help

Usage: iostat [ options... ] [  [  ] ]

Options are:

[ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -n ] [ -h ] [ -N ]

 [ ... ] | ALL ] [ -p [  | ALL ] ]

 

引數說明: 

-c 輸出CPU統計資訊。不能與-d引數同時使用。

-d 輸出裝置和分割槽的I/O統計資訊。不能與-c引數同時使用。(預設的引數是-d)

-k 用“kbytes/代替/顯示統計資訊。在核心2.4以及新版中才有效。

-m 用“mbytes/代替/顯示統計資訊。在核心2.4以及新版中才有效。

-t 顯示NFS目錄統計資訊。在核心2.6.17以及新版中才有效。

-V 顯示版本號並退出。

-x 顯示擴充套件統計資訊。不能與引數-p同時使用。並且需要在核心2.5以上才能使用,因為它需要/proc/diskstats 或者 載入sysfs獲取統計資訊。

-n  顯示NFS目錄統計資訊。

-h 可讀性更好的NFS目錄統計資訊(經測試,在我的系統上跟-t-p引數顯示沒什麼差別,但-p引數沒法與-x引數同時使用

-p 顯示系統使用的塊裝置和它們的分割槽統計資訊。不能與引數-x同時使用。如果命令中指定了裝置名稱,顯示裝置和它的所有分割槽的統計。如果使用了關鍵字ALL,將顯示系統所有塊裝置和分割槽統計資訊,即使它們沒有被使用。只有在核心2.5或更新版本中有效。

interval 重新整理時間間隔

count 重新整理次數

 

輸出結果分析

檢視核心版本和iostat版本

[root@node1 ~]# uname -a

Linux node1 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:54 EDT 2009 i686 i686 i386 GNU/Linux

[root@node1 ~]# iostat -V

sysstat version 7.0.2

(C) Sebastien Godard

輸出裝置與分割槽的I/O資訊

[root@node1 ~]# iostat -d

Linux 2.6.18-164.el5 (node1)    07/19/2014

 

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

sda               4.16        67.18        70.14    4153001    4336148

sda1              0.01         0.04         0.00       2406         28

sda2              4.15        67.13        70.14    4150315    4336120

dm-0             10.68        66.41        67.80    4105314    4191536

dm-1              0.38         0.72         2.34      44720     144584

sr0               0.01         0.03         0.00       2012          0

 

顯示裝置擴充套件統計資訊和NFS目錄統計資訊,並且每隔3s重新整理,重新整理2次,顯示單位是mb/s

[root@node1 ~]# iostat -xnm 3 2

-x and -n options are mutually exclusive

Linux 2.6.18-164.el5 (node1)    07/19/2014

 

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

           0.16    0.02    0.35    0.98    0.00   98.49

 

Device:         rrqm/s   wrqm/s   r/s   w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util

sda               0.31     6.63  2.02  2.16     0.03     0.03    33.02     0.03    7.23   2.63   1.10

sda1              0.01     0.00  0.01  0.00     0.00     0.00     5.77     0.00    1.81   1.68   0.00

sda2              0.30     6.63  2.01  2.16     0.03     0.03    33.07     0.03    7.24   2.63   1.10

dm-0              0.00     0.00  2.22  8.49     0.03     0.03    12.58     0.26   24.69   1.01   1.08

dm-1              0.00     0.00  0.09  0.29     0.00     0.00     8.00     0.01   19.50   1.32   0.05

sr0               0.00     0.00  0.01  0.00     0.00     0.00     5.92     0.00    1.11   1.04   0.00

 

Device:                   rMB_nor/s    wMB_nor/s    rMB_dir/s    wMB_dir/s    rMB_svr/s    wMB_svr/s    rops/s    wops/s

 

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

           0.00    0.00    0.00    0.35    0.00   99.65

 

Device:         rrqm/s   wrqm/s   r/s   w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util

sda               0.00     6.99  0.00  8.04     0.00     0.06    14.96     0.02    2.48   0.30   0.24

sda1              0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

sda2              0.00     6.99  0.00  8.04     0.00     0.06    14.96     0.02    2.48   0.30   0.24

dm-0              0.00     0.00  0.00 15.03     0.00     0.06     8.00     0.03    1.79   0.16   0.24

dm-1              0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

sr0               0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

 

Device:                   rMB_nor/s    wMB_nor/s    rMB_dir/s    wMB_dir/s    rMB_svr/s    wMB_svr/s    rops/s    wops/s

 

 

裝置統計資訊解讀:

Device:裝置或分割槽名稱。

Tps:裝置每秒的傳輸次數。一個IO請求表示一個傳輸。多個邏輯請求可以被組成一個I/O請求。一個傳輸的大小未知。

Blk_read/s:每秒從裝置讀取資料量

Blk_wrtn/s:每秒寫入裝置的資料量

Blk_read:讀取的總數量

Blk_wrtn:寫入的總數量

kB_read/s:每秒從裝置讀取的資料量(單位:KB

kB_wrtn/s:每秒寫入裝置的資料量(單位:KB

kB_read :讀取的總數量(單位:KB

kB_wrtn:寫入的總數量(單位:KB

MB_read/s:每秒從裝置讀取的資料量(單位:MB

MB_wrtn/s:每秒寫入裝置的資料量(單位:MB

MB_read:讀取的總數量(單位:MB

MB_wrtn:寫入的總數量(單位:MB

rrqm/s:每秒被合併的讀請求數

wrqm/s:每秒被合併的寫請求數

r/s :每秒的讀請求數

w/s :每秒的寫請求數

rsec/s:每秒讀取的扇區數

wsec/s:每秒寫入的扇區數

rkB/s每秒從裝置讀取的資料量(單位:KB

wkB/s:每秒寫入裝置的資料量(單位:KB

rMB/s:每秒從裝置讀取的資料量(單位:MB

wMB/s:每秒寫入裝置的資料量(單位:MB

avgrq-sz :平均每次IO操作的資料量(扇區數為單位)

avgqu-sz:平均等待處理的IO請求佇列長度 

await:I/O請求等待時間的平均值(單位:毫秒)

svctm:I/O請求處理時間的平均值(單位:毫秒)

%util:消耗在I/O請求中的CPU時間百分比(裝置頻寬利用率)。如果該值接近100%說明裝置出現了瓶頸

 

輸出CPU統計資訊

 

每隔一秒輸出一次,工輸出四次

[root@node1 ~]# iostat -c 1 4

Linux 2.6.18-164.el5 (node1)    07/19/2014

 

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

           0.16    0.02    0.36    1.02    0.00   98.44

 

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

           0.00    0.00    1.04    6.25    0.00   92.71

 

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

           0.00    0.00    0.00    0.00    0.00  100.00

 

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

           0.00    0.00    1.06   12.77    0.00   86.17


 CPU統計資訊引數解讀

%user:使用者程式使用的CPU使用率百分比

%nice:nice操作所使用的CPU的百分比

%system:系統程式使用的CPU使用率百分比

%iowait :系統輸出資料至磁碟時空閒的CPU時間百分比(即IO等待)

%steal:管理程式維護另一個虛擬處理器時,虛擬CPU的無意識等待時間百分比

%idle系統沒有任何資料輸出至磁碟的CPU時間百分比(即空閒時間)

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29320885/viewspace-1222577/,如需轉載,請註明出處,否則將追究法律責任。

相關文章