http://www.orczhou.com/index.php/2010/03/iostat-detail/
Linux系统出现了性能问题,一般我们可以通过top、iostat、free、vmstat等命令来查看初步定位问题。其中iostat可以给我们提供丰富的IO状态数据。
1. 基本使用
$iostat -d -k 1 10
参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;1 10表示,数据显示每隔1秒刷新一次,共显示10次。
$iostat -d -k 1 10
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 39.29 21.14 1.44 441339807 29990031
sda1 0.00 0.00 0.00 1623 523
sda2 1.32 1.43 4.54 29834273 94827104
sda3 6.30 0.85 24.95 17816289 520725244
sda5 0.85 0.46 3.40 9543503 70970116
sda6 0.00 0.00 0.00 550 236
sda7 0.00 0.00 0.00 406 0
sda8 0.00 0.00 0.00 406 0
sda9 0.00 0.00 0.00 406 0
sda10 60.68 18.35 71.43 383002263 1490928140
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 327.55 5159.18 102.04 5056 100
sda1 0.00 0.00 0.00 0 0
tps:该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)。“一次传输”意思是“一次I/O请求”。多个逻辑请求可能会被合并为“一次I/O请求”。“一次传输”请求的大小是未知的。
kB_read/s:每秒从设备(drive expressed)读取的数据量;kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;kB_read:读取的总数据量;kB_wrtn:写入的总数量数据量;这些单位都为Kilobytes。
上面的例子中,我们可以看到磁盘sda以及它的各个分区的统计数据,当时统计的磁盘总TPS是39.29,下面是各个分区的TPS。(因为是瞬间值,所以总TPS并不严格等于各个分区TPS的总和)
2. -x 参数
使用-x参数我们可以获得更多统计信息。
iostat -d -x -k 1 10
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 1.56 28.31 7.80 31.49 42.51 2.92 21.26 1.46 1.16 0.03 0.79 2.62 10.28
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 2.00 20.00 381.00 7.00 12320.00 216.00 6160.00 108.00 32.31 1.75 4.50 2.17 84.20
rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge);wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。
rsec/s:每秒读取的扇区数;wsec/:每秒写入的扇区数。r/s:The number of read requests that were issued to the device per second;w/s:The number of write requests that were issued to the device per second;
await:每一个IO请求的处理的平均时间(单位是微秒)。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。
%util:在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。
3. -c 参数
iostat还可以用来获取cpu部分状态值:
iostat -c 1 10 avg-cpu: %user %nice %sys %iowait %idle 1.98 0.00 0.35 11.45 86.22 avg-cpu: %user %nice %sys %iowait %idle 1.62 0.00 0.25 34.46 63.67
4. 常见用法
$iostat -d -k 1 10 #查看TPS和吞吐量信息
iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await)
iostat -c 1 10 #查看cpu状态
5. 实例分析
$$iostat -d -k 1 |grep sda10
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda10 60.72 18.95 71.53 395637647 1493241908
sda10 299.02 4266.67 129.41 4352 132
sda10 483.84 4589.90 4117.17 4544 4076
sda10 218.00 3360.00 100.00 3360 100
sda10 546.00 8784.00 124.00 8784 124
sda10 827.00 13232.00 136.00 13232 136
上面看到,磁盘每秒传输次数平均约400;每秒磁盘读取约5MB,写入约1MB。
iostat -d -x -k 1
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 1.56 28.31 7.84 31.50 43.65 3.16 21.82 1.58 1.19 0.03 0.80 2.61 10.29
sda 1.98 24.75 419.80 6.93 13465.35 253.47 6732.67 126.73 32.15 2.00 4.70 2.00 85.25
sda 3.06 41.84 444.90 54.08 14204.08 2048.98 7102.04 1024.49 32.57 2.10 4.21 1.85 92.24
可以看到磁盘的平均响应时间<5ms,磁盘使用率>80。磁盘响应正常,但是已经很繁忙了。
分享到:
相关推荐
在Linux系统中,Cacti可以利用iostat命令来监控系统的输入/输出(I/O)性能,帮助管理员了解磁盘、块设备以及其他存储资源的使用情况。iostat是System Monitoring Suite(sysstat)的一部分,可以提供CPU利用率和I/O...
Linux 下使用 iostat 监测 IO 状态 iostat 是 Linux 系统中一个强大的工具,用于监测和分析 IO 状态。通过 iostat,我们可以获取丰富的 IO 状态数据,从而帮助我们更好地了解系统的性能问题。 基本使用 -------- ...
iostat 命令是查看 Linux 系统 IO 是否存在瓶颈的重要工具之一,但是系统默认没有安装的,以 CentOS 系统为例,看看如何安装 iostat 命令。 安装 iostat 命令 在 CentOS 系统中,默认情况下没有安装 iostat 命令,...
无法通过yum安装 所有依赖包都在里面 CentOS 6.4 I/O工具iostat所有依赖包
iostat,linux下IO读写分析工具
"Linux中的iostat命令使用教程" iostat命令是Linux系统中的一个重要工具,用于监控磁盘操作活动,提供了磁盘活动统计情况和CPU使用情况的信息。在这里,我们将详细介绍iostat命令的使用和参数解释。 iostat命令...
### Linux下使用iostat监测IO状态 #### 一、iostat简介及基本使用 在Linux系统中,性能监控是非常重要的环节之一。当遇到性能问题时,通过一系列的工具和命令可以帮助我们快速定位问题所在。`iostat`作为其中一个...
### Linux IO实时监控iostat命令详解 #### 前言 在Linux系统管理与运维过程中,实时监控系统的I/O负载对于确保系统稳定性和性能至关重要。`iostat`工具作为一个强大的系统监视工具,能够帮助管理员监控系统中的磁盘...
《使用iostat工具检测Linux硬盘IO性能》 在Linux操作系统中,监控硬盘I/O性能是维护系统稳定性和优化性能的重要环节。iostat是一款强大的系统监控工具,它能够提供实时的磁盘输入/输出(I/O)统计信息,帮助我们...
总结来说,`iostat`是Linux系统管理员排查性能问题的有力工具,尤其对于识别和解决I/O相关问题至关重要。通过对I/O状态的持续监控和分析,我们可以及时发现并优化系统的瓶颈,确保服务的稳定性和效率。在软件开发...
在Linux系统管理中,了解和运用性能分析工具是至关重要的,因为这有助于优化系统的性能,确保服务的稳定性和效率。本文将重点介绍三个关键的性能分析工具:vmstat、iostat和sar。 首先,vmstat是Virtual Memory ...
本文将详细介绍如何使用iostat命令来查看Linux硬盘IO性能,并解释iostat命令的各个参数和输出结果的含义。 首先,iostat命令是Linux系统中一个常用的性能分析工具,用于查看磁盘IO、CPU使用率、磁盘使用率等信息。...
oracle asm存储的监控脚本,非常实用,类似于linux iostat 使用。 Output: DiskPath - Path to ASM disk DiskName - ASM disk name Gr - ASM disk group number Dsk - ASM disk number Reads - Reads Writes...
iostat用法,详细说明如何通过iostat来查看硬盘的io情况
`iostat`是一个强大的工具,用于实时监控Linux和Unix系统的输入/输出(I/O)活动,它可以帮助管理员识别磁盘瓶颈,优化系统资源分配,确保服务的稳定运行。本篇文章将详细介绍`iostat`命令及其相关的磁盘IO指标。 `...
iostat 命令是 Red Hat Enterprise Linux AS 发布的性能监测工具。它可以显示系统启动之后的 CPU 平均时间,类似于 uptime 命令。iostat 命令的输出结果还包括了磁盘使用报告,包括 CPU 占用情况、磁盘使用情况等...
linux下的top、iostat、df等命令集合的agent_monitor
描述中再次提到了"SUN 硬盘HardError清除插件 iostat-HradErro清除.zip",这里的"iostat"是UNIX/Linux系统中的一个监控工具,用于实时监控系统的输入/输出(I/O)状态,包括磁盘活动。"HradErro"看起来可能是"Hard...