linux iostat

硬盘io性能分析 await:一般系统IO响应时间应该低于5ms, 如果大于10ms就比较大,await 值的大小一般取决与 svctm 的值和 I/O 队列长度以 及I/O 请求模式,如果 svctm 的值与 await 很接近,表示几乎没有 I/O 等待,磁盘性能很好,如果 await 的值远高于 svctm 的值,则表示 I/O 队列等待太长,系统上运行的应用程序将变慢,如果响应时间超过了用户可以容许的范围,此时可以通过更换更快的硬盘、调整内核 elevator 算法,优化应用,或者升级 CPU来解决。 阅读详情

Field 1 -- rio # of reads issued
Field 2 -- rmerge  # of reads merged,
Field 3 -- rsect # of sectors read
Field 4 -- ruse  # of milliseconds spent reading
Field 5 -- wio # of writes completed
field 6 -- wmerge # of writes merged
Field 7 -- wsect # of sectors written
Field 8 -- wuse# of milliseconds spent writing
Field 9 -- running # of I/Os currently in progress
Field 10 -- use # of milliseconds spent doing I/Os
Field 11 -- aveq weighted # of milliseconds spent doing I/Os 


                   rio、 rmerge 、rsect、 ruse 、wio、 wmerge、 wsect 、wuse、 running 、use和 aveq项
   8    0 sda 2366680910 151758 1644555381 3016902476 2792407 3059224863 1611413747 2518779129 1 4025070448 1240541548
   8    1 sda1 1039 3822 7 14
   8    2 sda2 4661829 103194946 38218053 305744376
   8    3 sda3 1260 1777 46 368
   8    4 sda4 1 2 0 0
   8    5 sda5 2362162302 1541112050 3023681868 1304828507


   8    0 sda 2366681069 151758 1644560845 3016903407 2792643 3059225677 1611421745 2518779197 16 4025071067 1240543392
   8    1 sda1 1039 3822 7 14
   8    2 sda2 4661830 103194954 38218053 305744376
   8    3 sda3 1260 1777 46 368
   8    4 sda4 1 2 0 0
   8    5 sda5 2362162475 1541117506 3023682918 1304836505

 

 # iostat -x 1 10
Linux 2.6.18-92.el5xen    02/03/2009

avg-cpu: %user   %nice %system %iowait %steal   %idle
           1.10    0.00    4.82   39.54    0.07   54.46

Device:         rrqm/s   wrqm/s   r/s   w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await svctm %util
sda               0.00     3.50 0.40 2.50     5.60    48.00    18.48     0.00    0.97   0.97   0.28
sdb               0.00     0.00 0.00 0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdc               0.00     0.00 0.00 0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdd               0.00     0.00 0.00 0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sde               0.00     0.10 0.30 0.20     2.40     2.40     9.60     0.00    1.60   1.60   0.08
sdf              17.40     0.50 102.00 0.20 12095.20     5.60   118.40     0.70    6.81   2.09 21.36
sdg             232.40     1.90 379.70 0.50 76451.20    19.20   201.13     4.94   13.78   2.45 93.16

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 洪水。


别人一个不错的例子.(I/O 系统 vs. 超市排队)

举一个例子,我们在超市排队 checkout 时,怎么决定该去哪个交款台呢? 首当是看排的队人数,5个人总比20人要快吧? 除了数人头,我们也常常看看前面人购买的东西多少,如果前面有个采购了一星期食品的大妈,那么可以考虑换个队排了。还有就是收银员的速度了,如果碰上了连钱都点不清楚的新手,那就有的等了。另外,时机也很重要,可能 5 分钟前还人满为患的收款台,现在已是人去楼空,这时候交款可是很爽啊,当然,前提是那过去的 5 分钟里所做的事情比排队要有意义 (不过我还没发现什么事情比排队还无聊的)。

I/O 系统也和超市排队有很多类似之处:

r/s+w/s 类似于交款人的总数
平均队列长度(avgqu-sz)类似于单位时间里平均排队人的个数
平均服务时间(svctm)类似于收银员的收款速度
平均等待时间(await)类似于平均每人的等待时间
平均I/O数据(avgrq-sz)类似于平均每人所买的东西多少
I/O 操作率 (%util)类似于收款台前有人排队的时间比例。

我们可以根据这些数据分析出 I/O 请求的模式,以及 I/O 的速度和响应时间。

下面是别人写的这个参数输出的分析

# iostat -x 1
avg-cpu: %user %nice %sys %idle
16.24 0.00 4.31 79.44
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
/dev/cciss/c0d0
0.00 44.90 1.02 27.55 8.16 579.59 4.08 289.80 20.57 22.35 78.21 5.00 14.29
/dev/cciss/c0d0p1
0.00 44.90 1.02 27.55 8.16 579.59 4.08 289.80 20.57 22.35 78.21 5.00 14.29
/dev/cciss/c0d0p2
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

上面的 iostat 输出表明秒有 28.57 次设备 I/O 操作: 总IO(io)/s = r/s(读) +w/s(写) = 1.02+27.55 = 28.57 (次/秒) 其中写操作占了主体 (w:r = 27:1)。

平均每次设备 I/O 操作只需要 5ms 就可以完成,但每个 I/O 请求却需要等上 78ms,为什么? 因为发出的 I/O 请求太多 (每秒钟约 29 个),假设这些请求是同时发出的,那么平均等待时间可以这样计算:

平均等待时间 = 单个 I/O 服务时间 * ( 1 + 2 + ... + 请求总数-1) / 请求总数

应用到上面的例子: 平均等待时间 = 5ms * (1+2+...+28)/29 = 70ms,和 iostat 给出的78ms 的平均等待时间很接近。这反过来表明 I/O 是同时发起的。

每秒发出的 I/O 请求很多 (约 29 个),平均队列却不长 (只有 2 个 左右),这表明这 29 个请求的到来并不均匀,大部分时间 I/O 是空闲的。

一秒中有 14.29% 的时间 I/O 队列中是有请求的,也就是说,85.71% 的时间里 I/O 系统无事可做,所有 29 个 I/O 请求都在142毫秒之内处理掉了。

delta(ruse+wuse)/delta(io) = await = 78.21 => delta(ruse+wuse)/s =78.21 * delta(io)/s = 78.21*28.57 = 2232.8,表明每秒内的I/O请求总共需要等待2232.8ms。所以平均队列长度应为 2232.8ms/1000ms = 2.23,而 iostat 给出的平均队列长度 (avgqu-sz) 却为 22.35,为什么?! 因为 iostat 中有 bug,avgqu-sz 值应为 2.23,而不是 22.35。

 

 

Linux iostat 命令 Linux的iostat命令是监控系统磁盘I/O和CPU性能的重要工具。该命令属于sysstat工具包,通过安装后可使用基本命令格式"iostat [选项] [间隔] [次数]"来查看设备统计信息。常用选项包括-c(CPU)、-d(磁盘)、-x(扩展统计)等,输出结果包含CPU利用率、磁盘读写速度等关键指标。扩展统计能显示更详细的I/O性能数据,如等待时间、队列长度等。实际使用时可结合vmstat、sar等工具进行全面性能分析,并根据%util、await等指标判断系统瓶颈。典型应用包括 阅读详情

相关推荐

Linux命令·iostat

iostat工具将对系统的磁盘操作活动进行监视。

m0_64560763的博客 1319

使用iostat工具监测CentOS主机磁盘IO

在CentOS操作系统中,我们可以使用iostat工具来实时监控磁盘IO的情况。本文将介绍如何使用iostat工具来监测CentOS主机的磁盘IO,并提供相应的源代码示例。无论是手动执行iostat命令,还是编写脚本自动化监测,都可以帮助我们及时了解系统的磁盘IO负载,以便进行性能优化和故障排查。如果我们希望以特定的时间间隔自动获取磁盘IO的统计信息,我们可以编写一个简单的Shell脚本来实现。安装完成后,我们可以使用iostat命令来查看磁盘IO的统计信息。希望本文对你有所帮助!

OUDKE的博客 598

Centos7查看磁盘和CUP统计信息iostat命令

centos7查看i/0及cup统计情况 linux统计I/O及CUP情况

天涯芳草 6569

RAID磁盘阵列利用率计算.txt

精心总结笔记,磁盘利用率的计算,组成的磁盘数量、容量、可靠性等优缺点比较,包括RAID0、RAID1、RAID2、RAID3、RAID4、RAID5、RAID 0+1

OpenCASCADE(OCC)读取 STEP 模型文件并在MFC中显示

OpenCASCADE(OCC)读取 STEP 模型文件并在MFC中显示

weixin_61900468的博客 1万+

Linux之iostat命令

【Linux常用命令速查手册】关注【入门小站】,后台回复 「1001」 自取。 Linux系统中的 iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。iostat属于sysstat软件包。可以用yum install sysstat 直接安装。 命令格式 iostat.

Linux,Java,SpringBoot,Python,Lua略知一点 575

ColorOS13系统账户锁与密码锁破解全指南:从恢复模式到激活绕过

本文针对ColorOS13系统用户,详细解析了忘记锁屏密码(数字/图案锁)和遭遇OPPO账户锁(激活锁)的合法解决方案。核心是通过官方恢复模式进行格式化操作清除锁屏密码,并强调账户锁需通过密码找回或官方售后等正规途径解除。文章旨在帮助设备合法所有者恢复使用权,并提供了安全操作指南与数据备份建议。

weixin_28304023的博客 965

iostat linux,iostat 命令详解

概述iostat 主要用于输出磁盘IO 和 CPU的统计信息。iostat属于sysstat软件包。可以用yum install sysstat 直接安装。iostat 用法用法:iostat [选项] [] []如下图:iostat 用法命令参数:-c: 显示CPU使用情况-d: 显示磁盘使用情况-N: 显示磁盘阵列(LVM) 信息-n: 显示NFS 使用情况-k: 以 KB 为单位显示-m: ...

weixin_39915267的博客 124

SAP-ABAP:SAP中如何查看系统表之间的关联关系?

在业务逻辑开发或者ALV开发过程中,我们通常要从系统中找出几个标准表之间的关联关系,有的是head与item,通过外键进行关联的关系。那么怎么去找到呢?以上就是具体如何产看系统表之间的关联关系的步骤,对于不同代码的业务顾问,也是必须要掌握的。

LinkStar的博客 2430

【WorkBuddy专栏61】字节的AI打法为什么一直在变——WorkBuddy/CodeBuddy vs 字节Trae/TRAE Work/豆包全维度对比

【WorkBuddy专栏61】字节的AI打法为什么一直在变——WorkBuddy/CodeBuddy vs 字节Trae/TRAE Work/豆包全维度对比

AI人人懂 2756

linux 安装iostat,安装iostat和mpstat工具

今天在做数据同步传输的时候,想要使用iostat命令来监控磁盘的IO情况,使用时发现找不到,系统默认没有安装这个包。呵呵,没有办法只好自己动手装了。[root@testhost ~]# iostat-bash: iostat: command not found在系统观盘中找到sysstat包,然后使用下面的命令安装,sysstat包中包括iostat,mpstat,sar,sa[root@tes...

weixin_33344147的博客 1801

《R 语言卡方检验全解析:手写代码实现与详细步骤》卡方检验

卡方检验(Chi-Square Test)是一种常用的统计方法,主要用于检验分类变量之间的独立性或拟合优度。在医学、社会科学等领域中,卡方检验常用于分析两个或多个分类变量之间的关系。以下是卡方检验的全面解析,包括实现代码和手写公式。χ2∑Ei​Oi​−Ei​2​Oi​Ei​dfr−1c−1rcdfk−1k如果卡方统计量大于临界值,或 p 值小于显著性水平(如 0.05),则拒绝原假设。

Mrrunsen的博客 685

linux安装iostat,iostat 离线安装

由于lucene需要一定的io读写顾安装iostat来对磁盘io进行监控iostat 属于sysstat下的功能git路径如下:https://github.com/sysstat/sysstat第一步,需要下载该文件http://sebastien.godard.pagesperso-orange.fr/download.html第二部,则需要开始编译了,与其他程序安装相似./configure...

weixin_35793308的博客 1013

【STM32项目】基于AI技术的多功能消防机器人(完整工程资料源码)

机器人通过巡逻扫描环境空间与障碍物、定位导航、探测物体/环境进行建模/自动地图测绘、扫描火焰、获取温湿度大小、获取空气安全情况来判断当前环境地点是否安全,检测到温度过高或检测到易燃、烟雾、有毒气体或摄像头识别到火焰时能够通过高压水泵喷射器来实现火焰隔离工作,蜂鸣器进行现场鸣笛报警,同时将当前环境温湿度大小、空气情况、环境地图、是否安全信息,将各个传感器来接收获取到的信息,实时发送到用户手机中的微信小程序,实现与用户远程监视功能,用户同时也能通过手机与电脑远程下发命令来操控机器人来实现交互功能

嵌入式技术开发 1万+

203.华为组网实例:VLAN间互通DHCP中继实验

SW核心交换机上配置DHCP中继。

迷逝 8432

Linux系统之iostat命令的基本使用

Linux系统之iostat命令的基本使用

jks212454的博客 1万+

FPGA上的时间数字转换器(TDC):详细概述及FPGA开发

本文对基于FPGA的时间数字转换器(TDC)进行了详细的概述,并提供了一个简单的示例代码,展示了如何在FPGA上实现TDC功能。在本文中,我们将详细概述基于FPGA的TDC,并提供相应的源代码示例,以帮助读者理解和实现这一功能。需要注意的是,这只是一个简单的示例,实际的TDC设计可能需要更多的功能和优化,以满足特定的需求。读取和重置:最后,测量结果可以通过读取计数器的值来获取,并且在每次读取后需要将计数器重置为零,以便进行下一次测量。TDC的基本原理是测量信号的到达时间与参考时钟之间的时间差。

EsqpWeller的博客 6868

Linux 性能分析之iostat命令详解

知道了iowait的计算方法后,下面讲解一下iowait常见的一些误解: - iowait 表示等待IO完成,在此期间 CPU 不能接受其他任务 从上面 iowait 的定义可以知道,iowait 表示 CPU 处于空闲状态并且有未完成的磁盘 IO 请求,也就是说,iowait 的首要条件就是 CPU 空闲,既然空闲就能接受任务,只是当前没有可运行的任务,才会处于空闲状态的,为什么没有可运行的任务呢?当前的日期, _x86_64_是CPU的架构, (4 CPU)显示了当前系统的CPU的数量。

m0_70731516的博客 1321

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Linux命令之iostat命令

如果%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。 如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明...

月生的静心苑 4267

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

使用iostat来对linux硬盘IO性能进行检测

使用iostat来对linux硬盘IO性能进行检测 近期公司安装了几台DELL PE2650和2850的服务器,统一安装的是RHLE5.132位系统,而服务器的SCSI硬盘都统一做了raid1。公司老总要求对硬盘IO作统一检测报告,在Linux下找了许多工具,发现最实用的还是iostat,这个需要先安装sysstat ,即yum -y install sysstat;公司内部的yum服务

子木小乔 8522

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Linux iostat 命令使用详解

iostat命令用于监控Linux系统输入/输出设备的加载情况。它提供有关CPU统计信息以及设备和分区的输入/输出统计信息。通过显示I/O操作如何影响系统性能,它对于诊断性能瓶颈(例如磁盘或网络活动缓慢)特别有用。

tangPHP的博客 1392

linux iostat 源码,iostat源码

/** iostat.c v2.2* Linux I/O performance monitoring utility** Special thanks to Stephen C. Tweedie's for his first version of* "sard" I/O counters for the Linux kernel. Without his work this* wouldn't...

weixin_32945435的博客 334

linux iostat_带有示例Linux iostat命令教程

linux iostatLinux iostat is part of the sysstat utilities. iostat command is mainly used to track input output related events and issues. iostat command can provide metrics, information and statistics...

cunjiu9486的博客 268

linux命令之——iostat

【代码】linux命令之——iostat。

qq_25096749的博客 300
上一篇: C语言中的宏
下一篇: Linux系统的内存管理机制学习
tinnycloud
博客等级 码龄21年 9粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值