`
bingtang5
  • 浏览: 12846 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Linux IO实时监控命令iostat命令学习笔记

阅读更多

最近测试一个ftp下载服务相关项目,根据以往经验,与服务器diskio,netio性能有很直接的关系

之前只是听说过iostat命令,今天具体百度了下,学习下iostat命令的详细使用方法

 

参考:http://aofengblog.blog.163.com/blog/static/6317021201331365716412/

感谢傲风大神分享~

 

敲 iostat

 

 

[root@localhost test]# iostat
Linux 2.6.32-279.el6.x86_64 (localhost.localdomain) 	2013年12月05日 	_x86_64_	(2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.02    0.00    0.07    0.00    0.00   99.90

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               0.28         2.12        35.10    2917532   48306386
dm-0              0.41         1.77         2.96    2432042    4074312
dm-1              0.00         0.00         0.00       2576          0
dm-2              4.06         0.35        32.14     476490   44232056

 输入信息中每个信息的意义如下:

cpu的统计信息,如果是多cpu系统,显示的所有cpu的平均统计信息。

  •  %user:用户进程消耗cpu的比例
  • %nice:用户进程优先级调整消耗的cpu比例
  • %sys:系统内核消耗的cpu比例
  • %iowait:等待磁盘io所消耗的cpu比例
  • %idle:闲置cpu的比例(不包括等待磁盘io的s)

 磁盘的统计信息:

  •  Device:设备的名称
  • Tps:设备上每秒的io传输(可能多个io被组成一个io)的次数
  • Blk_read/s:每秒从设备读取block(kernel 2.4以上,block=512byte)的数量
  • Blk_wrtn/s:每秒写到设备block(kernel 2.4以上,block=512byte)的数量
  • Blk_read:间隔时间内,从设备读取总的block数量
  • Blk_wrtn:间隔时间内,写到设备总的block数量

 

 

敲 iostat --help

[root@localhost test]# iostat --help
用法: iostat [ 选项 ] [ <时间间隔> [ <次数> ] ]
选项:
[ -c ] [ -d ] [ -N ] [ -n ] [ -h ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ]
[ <设备> [...] | ALL ] [ -p [ <设备> [,...] | ALL ] ]

 下边详细探究每个参数的意义

 

-c参数(与-d互斥)

输出CPU统计信息

敲 iostat -c

[root@localhost test]# iostat -c
Linux 2.6.32-279.el6.x86_64 (localhost.localdomain) 	2013年12月05日 	_x86_64_	(2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.02    0.00    0.07    0.00    0.00   99.90

 

-d参数(与-c互斥)

输出设备和分区的I/O统计信息

敲 iostat -d

[root@localhost test]# iostat -d
Linux 2.6.32-279.el6.x86_64 (localhost.localdomain) 	2013年12月05日 	_x86_64_	(2 CPU)

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               0.28         2.14        37.31    2944012   51377066
dm-0              0.41         1.79         2.96    2458162    4077056
dm-1              0.00         0.00         0.00       2576          0
dm-2              4.34         0.35        34.35     476490   47299992

 

-N参数(不常用)

暂时没搞懂,貌似是显示磁盘分区信息?详细目录?差不多资料,有待研究……

敲 iostat -N

[root@localhost test]# iostat -N
Linux 2.6.32-279.el6.x86_64 (localhost.localdomain) 	2013年12月05日 	_x86_64_	(2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.02    0.00    0.07    0.00    0.00   99.90

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               0.29         2.14        38.17    2949236   52559330
VolGroup-lv_root     0.41         1.79         2.96    2463370    4077976
VolGroup-lv_swap     0.00         0.00         0.00       2576          0
VolGroup-lv_home     4.44         0.35        35.21     476506   48481336

 

-n 参数(不常用)

查看NFS上流量信息

敲 iostat -n

[root@localhost test]# iostat -n
Linux 2.6.32-279.el6.x86_64 (localhost.localdomain) 	2013年12月05日 	_x86_64_	(2 CPU)

Filesystem:              rBlk_nor/s   wBlk_nor/s   rBlk_dir/s   wBlk_dir/s   rBlk_svr/s   wBlk_svr/s     ops/s    rops/s    wops/s

 -h参数(不常用)

可读性更好的NFS目录信息统计

敲 iostat -h

[root@localhost test]# iostat -h
Linux 2.6.32-279.el6.x86_64 (localhost.localdomain) 	2013年12月05日 	_x86_64_	(2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.02    0.00    0.07    0.00    0.00   99.90

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               0.29         2.14        38.90    2949636   53573802
dm-0              0.41         1.79         2.96    2463770    4078784
dm-1              0.00         0.00         0.00       2576          0
dm-2              4.53         0.35        35.93     476506   49495000

 -k -m参数(这个用的多)

-k 用“kbytes/秒”代替“块/秒”显示统计信息

-m 用“mbytes/秒”代替“块/秒”显示统计信息

敲 iostat -k(-m)

[root@localhost test]# iostat -k
Linux 2.6.32-279.el6.x86_64 (localhost.localdomain) 	2013年12月05日 	_x86_64_	(2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.02    0.00    0.08    0.00    0.00   99.90

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.29         1.07        19.65    1474994   27071613
dm-0              0.41         0.89         1.48    1232061    2039736
dm-1              0.00         0.00         0.00       1288          0
dm-2              4.59         0.17        18.17     238253   25031868

[root@localhost test]# iostat -m
Linux 2.6.32-279.el6.x86_64 (localhost.localdomain) 	2013年12月05日 	_x86_64_	(2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.02    0.00    0.08    0.00    0.00   99.90

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
sda               0.29         0.00         0.02       1440      26440
dm-0              0.41         0.00         0.00       1203       1991
dm-1              0.00         0.00         0.00          1          0
dm-2              4.59         0.00         0.02        232      24448

 -t参数(不常用)

显示NFS目录统计信息

敲 iostat -t

[root@localhost nmon_x86_64_rhel4]# iostat -t
Linux 2.6.32-279.el6.x86_64 (localhost.localdomain) 	2014Ū07Ղ04ɕ 	_x86_64_	(1 CPU)

2014Ū07Ղ04ɕ 15ʱ22·Ա1ī
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.04    0.00    0.29    0.01    0.00   99.66

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               0.37        33.27        23.62   85820646   60944050
dm-0              0.29         1.02         2.02    2625506    5220000
dm-1              0.00         0.00         0.00       3096          0
dm-2              2.84        32.24        21.60   83183690   55724008

 

-V参数

显示版本号并通出

敲 iostat -V

[root@localhost nmon_x86_64_rhel4]# iostat -V
sysstat °汾 9.0.4
(C) Sebastien Godard (sysstat <at> orange.fr)

 -x参数(这个也用的多)

显示扩展统计信息

敲 iostat -x

[root@localhost nmon_x86_64_rhel4]# iostat -x
Linux 2.6.32-279.el6.x86_64 (localhost.localdomain) 	2014Ū07Ղ04ɕ 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.04    0.00    0.29    0.01    0.00   99.66

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.01     2.76    0.18    0.19    33.29    23.62   154.05     0.00    1.53   0.66   0.02
dm-0              0.00     0.00    0.04    0.25     1.02     2.02    10.34     0.00    1.33   0.51   0.01
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     8.00     0.00    2.23   0.78   0.00
dm-2              0.00     0.00    0.14    2.70    32.27    21.60    18.97     0.03   10.26   0.03   0.01

 

每个输出消息含义:

  • rrqm/s: 每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并
  • wrqm/s: 每秒对该设备的写请求被合并次数
  • r/s: 每秒完成的读次数
  • w/s: 每秒完成的写次数
  • rkB/s: 每秒读数据量(kB为单位)
  • wkB/s: 每秒写数据量(kB为单位)
  • avgrq-sz:平均每次IO操作的数据量(扇区数为单位)
  • avgqu-sz: 平均等待处理的IO请求队列长度
  • await: 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)
  • svctm: 平均每次IO请求的处理时间(毫秒为单位)
  • %util: 采用周期内用于IO操作的时间比率,即IO队列非空的时间比率

 干介绍有些枯燥

下面列举写常见用法

iostat -d -k 2

 

 

 

kb/s显示磁盘信息,每2s刷新一次

[root@localhost nmon_x86_64_rhel4]# iostat -d -k 2
Linux 2.6.32-279.el6.x86_64 (localhost.localdomain) 	2014Ū07Ղ04ɕ 	_x86_64_	(1 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.37        16.71        11.81   43115523   30473465
dm-0              0.29         0.51         1.01    1312813    2610764
dm-1              0.00         0.00         0.00       1548          0
dm-2              2.84        16.20        10.80   41796985   27862680

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              20.27      2594.59         0.00       3840          0
dm-0              0.00         0.00         0.00          0          0
dm-1              0.00         0.00         0.00          0          0
dm-2             20.27      2594.59         0.00       3840          0

^C

 

 

iostat -dkx 1 10

 

kb/s显示磁盘统计信息及扩展信息,每1s刷新 ,刷新10次结束

 

[root@localhost nmon_x86_64_rhel4]# iostat -dkx 1 10
Linux 2.6.32-279.el6.x86_64 (localhost.localdomain) 	2014Ū07Ղ04ɕ 	_x86_64_	(1 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.01     2.76    0.18    0.19    16.85    11.81   154.47     0.00    1.53   0.66   0.02
dm-0              0.00     0.00    0.04    0.25     0.51     1.01    10.34     0.00    1.33   0.51   0.01
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     8.00     0.00    2.23   0.78   0.00
dm-2              0.00     0.00    0.14    2.70    16.34    10.80    19.11     0.03   10.26   0.03   0.01

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00     0.00   36.76    1.47  5158.82     5.88   270.15     0.03    0.77   0.69   2.65
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-2              0.00     0.00   36.76    1.47  5158.82     5.88   270.15     0.03    0.77   0.69   2.65

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00     0.00   19.72    0.00  2507.04     0.00   254.29     0.01    0.57   0.50   0.99
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-2              0.00     0.00   19.72    0.00  2507.04     0.00   254.29     0.01    0.57   0.50   0.99

 

就给出了3次刷新数,一样的东西,太长了大家就看着有点乱是吧

 

实例分析

 

 

[root@localhost nmon_x86_64_rhel4]# iostat -d -k 1 10|grep dm-2
Linux 2.6.32-279.el6.x86_64 (localhost.localdomain) 	2014Ū07Ղ04ɕ 	_x86_64_	(1 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
dm-2              2.84        16.47        10.80   42504905   27863480
dm-2             20.25      1777.22        25.32       1404         20
dm-2              4.88       624.39         0.00        512          0
dm-2              0.00         0.00         0.00          0          0
dm-2              0.00         0.00         0.00          0          0
dm-2              5.00       640.00         0.00        512          0
dm-2              0.00         0.00         0.00          0          0
dm-2             10.00       640.00        20.00        512         16
dm-2              0.00         0.00         0.00          0          0
dm-2              2.47       316.05         0.00        256          0

 

上面的数据说明:dm-2分区10s内 每秒传输次数约 4,;每秒磁盘读取约961kb,写入约5.6kb

 

[root@localhost nmon_x86_64_rhel4]# iostat -d -k -x 1 10|grep dm-2
Linux 2.6.32-279.el6.x86_64 (localhost.localdomain) 	2014Ū07Ղ04ɕ 	_x86_64_	(1 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
dm-2              0.00     0.00    0.14    2.70    16.54    10.80    19.25     0.03   10.25   0.03   0.01
dm-2              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-2              0.00     0.00    0.00    5.06     0.00    20.25     8.00     0.00    0.00   0.00   0.00
dm-2              0.00     0.00    3.61    0.00   462.65     0.00   256.00     0.00    0.33   0.33   0.12
dm-2              0.00     0.00    2.33    0.00   297.67     0.00   256.00     0.00    0.50   0.50   0.12
dm-2              0.00     0.00    3.90    0.00   498.70     0.00   256.00     0.00    0.33   0.33   0.13
dm-2              0.00     0.00    3.95    0.00   505.26     0.00   256.00     0.00    0.67   0.67   0.26
dm-2              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-2              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-2              0.00     0.00    3.57    0.00   457.14     0.00   256.00     0.00    0.33   0.33   0.12

 这里重点看 await  %util

上面数据说明:磁盘平均响应时间约1ms(但是有峰值10ms的存在,建议长时间统计,有待继续观察);磁盘使用率不足1%,磁盘响应正常

由此看来,瓶颈不在磁盘读写上,或者你的压力还不够!

 

个人拙见,有不对的地方,还请大神指教!

 

补充下-x参数个含义分析方法:

参考http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858810.html

rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge);wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。

rsec/s:每秒读取的扇区数;
wsec/:每秒写入的扇区数。
rKB/s:The number of read requests that were issued to the device per second;
wKB/s:The number of write requests that were issued to the device per second;
avgrq-sz 平均请求扇区的大小
avgqu-sz 是平均请求队列的长度。毫无疑问,队列长度越短越好。    
await:  每一个IO请求的处理的平均时间(单位是微秒毫秒)。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。
         这个时间包括了队列时间和服务时间,也就是说,一般情况下,await大于svctm,它们的差值越小,则说明队列时间越短,反之差值越大,队列时间越长,说明系统出了问题。
svctm    表示平均每次设备I/O操作的服务时间(以毫秒为单位)。如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长,         系统上运行的应用程序将变慢。
%util: 在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度
。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。

  

分享到:
评论

相关推荐

    Linux IO实时监控iostat命令详解.pdf

    ### Linux IO实时监控iostat命令详解 #### 前言 在Linux系统管理与运维过程中,实时监控系统的I/O负载对于确保系统稳定性和性能至关重要。`iostat`工具作为一个强大的系统监视工具,能够帮助管理员监控系统中的磁盘...

    linux中查看io的相关命令

    Linux 中查看 IO 相关命令 ...查看 Linux 服务器硬盘 IO 访问负荷的方法有多种,包括使用 Top 命令、iostat 命令、vmstat 命令、dd 命令和脚本等。这些方法可以帮助我们快速地解决服务器出现的 IO 相关问题。

    linux系统资源监控命令

    `top` 命令是实时显示系统中各个进程的资源占用状况的动态视图工具,通过它可以实时监控到系统的运行状态,包括CPU使用情况、内存使用情况以及系统中各个进程的状态。 - **选项解析**: - `-d`:设置更新间隔时间...

    Unix,Linux 磁盘 IO 性能监控命令.docx

    例如,使用`iostat`和`sar`命令可以实时或定期收集这些数据,从而分析系统的I/O性能。 **iostat命令**:此命令提供关于物理磁盘活动时间及平均传输速度的信息,帮助管理员识别I/O瓶颈,平衡输入/输出负载。 **sar...

    linux系统的监控命令

    首先,`top`命令是Linux中一个强大的实时系统监控工具,它能显示系统中各个进程的资源占用状况,包括CPU使用率、内存使用情况、进程状态等。`top`命令的输出主要包括以下几个部分: 1. **系统负载**:`load average...

    Linux中磁盘IO监控命令.pdf

    了解这些指标后,我们可以使用以下监控工具进行实时监控: 1. **iostat**:这个命令能够显示物理磁盘的活动时间和平均传输速度,帮助识别I/O瓶颈,平衡输入/输出负载。 2. **sar**:不仅可以报告CPU使用情况,还能...

    Linux下使用iostat监测IO状态

    Linux 下使用 iostat 监测 IO 状态 iostat 是 Linux 系统中一个强大的工具,用于监测和分析 IO 状态。通过 iostat,我们可以获取丰富的 IO 状态数据,从而帮助我们更好地了解系统的性能问题。 基本使用 -------- ...

    cacti linux系统iostat监控

    在Linux系统中,Cacti可以利用iostat命令来监控系统的输入/输出(I/O)性能,帮助管理员了解磁盘、块设备以及其他存储资源的使用情况。iostat是System Monitoring Suite(sysstat)的一部分,可以提供CPU利用率和I/O...

    详解Linux命令iostat

    iostat 命令是查看 Linux 系统 IO 是否存在瓶颈的重要工具之一,但是系统默认没有安装的,以 CentOS 系统为例,看看如何安装 iostat 命令。 安装 iostat 命令 在 CentOS 系统中,默认情况下没有安装 iostat 命令,...

    Linux服务器的16个监控命令.pdf

    nmon是一个开源的Linux系统性能监控工具,它能够提供包括处理器使用率、内存使用率、磁盘输入/输出统计、网络统计等在内的多个子系统的实时监控信息。nmon通过一个curses界面提供这些信息,管理员可以通过按键选择...

    服务器IO性能评估【监控命令+性能指标+iostat使用】[收集].pdf

    服务器IO性能评估的方法有多种,常见的方法包括使用iostat命令和sar命令。iostat命令可以监控服务器磁盘的活动情况、资源利用率和性能瓶颈;sar命令可以收集、报告和保存服务器系统的行为信息,包括CPU使用情况、IO...

    AIX的iostat命令解析.docx

    AIX操作系统中的iostat命令是一种强大的磁盘性能分析工具,用于监控和分析磁盘的性能和活动情况。在本文中,我们将详细介绍iostat命令的使用和解析,并探讨其在磁盘性能分析和优化中的应用。 iostat命令的基本语法...

    iostat,linux下IO读写分析工具

    iostat,linux下IO读写分析工具

    记一次记一次Linux性能监控

    - **磁盘IO**:`iostat`命令用于监控磁盘IO性能,包括读写速率、等待时间和设备利用率。 - **网络IO**:`netstat`和`iftop`可以帮助监控网络带宽使用和连接状态。 4. **应用类型与性能监控** - **CPU密集型...

    故好Linux硬件实时监控(一)——实时监控Linux加载硬件信息.pdf

    在Linux操作系统中,硬件实时监控是确保系统稳定运行的关键环节。Linux以其卓越的稳定性著称,但硬件配置不当可能会导致问题,即使是最稳定的系统也需要进行硬件状态的监控。本文主要探讨如何实时监控Linux硬件情况...

    linux下的top、iostat、df等命令集合的agent_monitor.zip

    linux下的top、iostat、df等命令集合的agent_monitor

    linux查看磁盘IO情况.docx

    本文将详细介绍 Linux 中查看磁盘 IO 情况的命令,包括 top、iostat 和 vmstat 等命令。 1. top 命令 top 命令用于显示系统当前的进程和资源使用情况。通过 top 命令,我们可以查看系统的 CPU 使用率、内存使用率...

    iostat 监视磁盘操作,磁盘IO

    `iostat`是一个强大的工具,用于实时监控Linux和Unix系统的输入/输出(I/O)活动,它可以帮助管理员识别磁盘瓶颈,优化系统资源分配,确保服务的稳定运行。本篇文章将详细介绍`iostat`命令及其相关的磁盘IO指标。 `...

    Linux中的iostat命令使用教程

    iostat命令是Linux系统中的一个重要工具,用于监控磁盘操作活动,提供了磁盘活动统计情况和CPU使用情况的信息。在这里,我们将详细介绍iostat命令的使用和参数解释。 iostat命令格式为:iostat [参数] [时间] [次数...

Global site tag (gtag.js) - Google Analytics