最近测试一个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命令详解 #### 前言 在Linux系统管理与运维过程中,实时监控系统的I/O负载对于确保系统稳定性和性能至关重要。`iostat`工具作为一个强大的系统监视工具,能够帮助管理员监控系统中的磁盘...
Linux 中查看 IO 相关命令 ...查看 Linux 服务器硬盘 IO 访问负荷的方法有多种,包括使用 Top 命令、iostat 命令、vmstat 命令、dd 命令和脚本等。这些方法可以帮助我们快速地解决服务器出现的 IO 相关问题。
`top` 命令是实时显示系统中各个进程的资源占用状况的动态视图工具,通过它可以实时监控到系统的运行状态,包括CPU使用情况、内存使用情况以及系统中各个进程的状态。 - **选项解析**: - `-d`:设置更新间隔时间...
例如,使用`iostat`和`sar`命令可以实时或定期收集这些数据,从而分析系统的I/O性能。 **iostat命令**:此命令提供关于物理磁盘活动时间及平均传输速度的信息,帮助管理员识别I/O瓶颈,平衡输入/输出负载。 **sar...
首先,`top`命令是Linux中一个强大的实时系统监控工具,它能显示系统中各个进程的资源占用状况,包括CPU使用率、内存使用情况、进程状态等。`top`命令的输出主要包括以下几个部分: 1. **系统负载**:`load average...
了解这些指标后,我们可以使用以下监控工具进行实时监控: 1. **iostat**:这个命令能够显示物理磁盘的活动时间和平均传输速度,帮助识别I/O瓶颈,平衡输入/输出负载。 2. **sar**:不仅可以报告CPU使用情况,还能...
Linux 下使用 iostat 监测 IO 状态 iostat 是 Linux 系统中一个强大的工具,用于监测和分析 IO 状态。通过 iostat,我们可以获取丰富的 IO 状态数据,从而帮助我们更好地了解系统的性能问题。 基本使用 -------- ...
在Linux系统中,Cacti可以利用iostat命令来监控系统的输入/输出(I/O)性能,帮助管理员了解磁盘、块设备以及其他存储资源的使用情况。iostat是System Monitoring Suite(sysstat)的一部分,可以提供CPU利用率和I/O...
iostat 命令是查看 Linux 系统 IO 是否存在瓶颈的重要工具之一,但是系统默认没有安装的,以 CentOS 系统为例,看看如何安装 iostat 命令。 安装 iostat 命令 在 CentOS 系统中,默认情况下没有安装 iostat 命令,...
nmon是一个开源的Linux系统性能监控工具,它能够提供包括处理器使用率、内存使用率、磁盘输入/输出统计、网络统计等在内的多个子系统的实时监控信息。nmon通过一个curses界面提供这些信息,管理员可以通过按键选择...
服务器IO性能评估的方法有多种,常见的方法包括使用iostat命令和sar命令。iostat命令可以监控服务器磁盘的活动情况、资源利用率和性能瓶颈;sar命令可以收集、报告和保存服务器系统的行为信息,包括CPU使用情况、IO...
AIX操作系统中的iostat命令是一种强大的磁盘性能分析工具,用于监控和分析磁盘的性能和活动情况。在本文中,我们将详细介绍iostat命令的使用和解析,并探讨其在磁盘性能分析和优化中的应用。 iostat命令的基本语法...
iostat,linux下IO读写分析工具
- **磁盘IO**:`iostat`命令用于监控磁盘IO性能,包括读写速率、等待时间和设备利用率。 - **网络IO**:`netstat`和`iftop`可以帮助监控网络带宽使用和连接状态。 4. **应用类型与性能监控** - **CPU密集型...
在Linux操作系统中,硬件实时监控是确保系统稳定运行的关键环节。Linux以其卓越的稳定性著称,但硬件配置不当可能会导致问题,即使是最稳定的系统也需要进行硬件状态的监控。本文主要探讨如何实时监控Linux硬件情况...
linux下的top、iostat、df等命令集合的agent_monitor
本文将详细介绍 Linux 中查看磁盘 IO 情况的命令,包括 top、iostat 和 vmstat 等命令。 1. top 命令 top 命令用于显示系统当前的进程和资源使用情况。通过 top 命令,我们可以查看系统的 CPU 使用率、内存使用率...
`iostat`是一个强大的工具,用于实时监控Linux和Unix系统的输入/输出(I/O)活动,它可以帮助管理员识别磁盘瓶颈,优化系统资源分配,确保服务的稳定运行。本篇文章将详细介绍`iostat`命令及其相关的磁盘IO指标。 `...
iostat命令是Linux系统中的一个重要工具,用于监控磁盘操作活动,提供了磁盘活动统计情况和CPU使用情况的信息。在这里,我们将详细介绍iostat命令的使用和参数解释。 iostat命令格式为:iostat [参数] [时间] [次数...