- 浏览: 7936195 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
http://huoding.com/2011/07/13/91
网站的很多性能问题最终都会归结到IO头上,所以说理解iostat命令是非常有必要的。
小技巧:你知道iostat是从哪里得到IO相关信息的吗?使用strace命令能跟踪到答案:
shell> strace -eopen iostat
open("/proc/diskstats", O_RDONLY)注:Strace教程:5 simple ways to troubleshoot using Strace
注:关于diskstats的说明,参见官方文档(主要是其中的field1 ~ field11部分)。
如果你的操作系统里没有iostat命令的话,除了从源代码安装,还可以使用下面方式:
Centos/Fedora的安装方式是:yum install sysstat
Debian/Ubuntu的安装方式是:aptitude install sysstat
我最常用的iostat命令格式是:『iostat -dx 1』,意思是每隔一秒显示一次IO扩展信息。
shell> iostat -dx 1
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s
sda 0.18 37.71 0.65 2.63 50.18 322.08
avgrq-sz avgqu-sz await svctm %util
113.46 0.35 107.49 1.67 0.55
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s
sda 0.00 4208.00 0.00 165.00 0.00 163872.00
avgrq-sz avgqu-sz await svctm %util
993.16 119.54 1144.36 6.07 100.10注:开头显示的是自系统启动开始的平均值,后面显示的是每段时间间隔里的平均值。
介绍一下相关参数的含义:
rrqm/s:队列中每秒钟合并的读请求数量
wrqm/s:队列中每秒钟合并的写请求数量
r/s:每秒钟完成的读请求数量
w/s:每秒钟完成的写请求数量
rsec/s:每秒钟读取的扇区数量
wsec/s:每秒钟写入的扇区数量
avgrq-sz:平均请求扇区的大小
avgqu-sz:平均请求队列的长度
await:平均每次请求的等待时间
svctm:平均每次请求的服务时间
util:设备的利用率
注:建议对照源代码来记忆这些参数都是如何计算出来的。
关于这些参数,相对重要的是后面几个,具体来说是:util,svctm,await,avgqu-sz:
util是设备的利用率。如果它接近100%,通常说明设备能力趋于饱和(并不绝对)。有时候会出现大于100%的情况,这是因为读取数据的时候是非原子操作。
svctm是平均每次请求的服务时间。从源代码里可以看出:(r/s+w/s)*(svctm/1000)=util。举例子:如果util达到100%,那么此时svctm=1000/(r/s+w/s),假设IOPS是1000,那么svctm大概在1毫秒左右,如果长时间大于这个数值,说明系统出了问题。
await是平均每次请求的等待时间。这个时间包括了队列时间和服务时间,也就是说,一般情况下,await大于svctm,它们的差值越小,则说明队列时间越短,反之差值越大,队列时间越长,说明系统出了问题。
avgqu-sz是平均请求队列的长度。毫无疑问,队列长度越短越好。
说明:svctm参数在未来某个版本的iostat会被删除,官方文档是这样描述原因的:
The average service time (svctm field) value is meaningless, as I/O statistics are calculated at block level, and we don’t know when the disk driver starts to process a request. For this reason, this field will be removed in a future sysstat version.
另外,有时候iostat会显示一些很离谱的结果,官方FAQ给出了如下的解释:
Because of a Linux kernel bug, iostat -x may display huge I/O response times (svctm) and a bandwidth utilization (%util) of 100% for some devices. Indeed these devices have a value for the field #9 (beginning after the device name) in /proc/{partitions,diskstats} which is always different from 0, and even negative sometimes. Yet this field should go to zero, since it gives the number of I/Os currently in progress (it is incremented as requests are submitted, and decremented as they finish). To (temporarily) solve the problem, you should reboot your system to reset the counters in /proc/{partitions,diskstats}.
如果大家想要更系统的了解关于IO的相关知识,可以参考如下资料:
Getting the hang of IOPS
Basic I/O Monitoring on Linux
网站的很多性能问题最终都会归结到IO头上,所以说理解iostat命令是非常有必要的。
小技巧:你知道iostat是从哪里得到IO相关信息的吗?使用strace命令能跟踪到答案:
shell> strace -eopen iostat
open("/proc/diskstats", O_RDONLY)注:Strace教程:5 simple ways to troubleshoot using Strace
注:关于diskstats的说明,参见官方文档(主要是其中的field1 ~ field11部分)。
如果你的操作系统里没有iostat命令的话,除了从源代码安装,还可以使用下面方式:
Centos/Fedora的安装方式是:yum install sysstat
Debian/Ubuntu的安装方式是:aptitude install sysstat
我最常用的iostat命令格式是:『iostat -dx 1』,意思是每隔一秒显示一次IO扩展信息。
shell> iostat -dx 1
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s
sda 0.18 37.71 0.65 2.63 50.18 322.08
avgrq-sz avgqu-sz await svctm %util
113.46 0.35 107.49 1.67 0.55
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s
sda 0.00 4208.00 0.00 165.00 0.00 163872.00
avgrq-sz avgqu-sz await svctm %util
993.16 119.54 1144.36 6.07 100.10注:开头显示的是自系统启动开始的平均值,后面显示的是每段时间间隔里的平均值。
介绍一下相关参数的含义:
rrqm/s:队列中每秒钟合并的读请求数量
wrqm/s:队列中每秒钟合并的写请求数量
r/s:每秒钟完成的读请求数量
w/s:每秒钟完成的写请求数量
rsec/s:每秒钟读取的扇区数量
wsec/s:每秒钟写入的扇区数量
avgrq-sz:平均请求扇区的大小
avgqu-sz:平均请求队列的长度
await:平均每次请求的等待时间
svctm:平均每次请求的服务时间
util:设备的利用率
注:建议对照源代码来记忆这些参数都是如何计算出来的。
关于这些参数,相对重要的是后面几个,具体来说是:util,svctm,await,avgqu-sz:
util是设备的利用率。如果它接近100%,通常说明设备能力趋于饱和(并不绝对)。有时候会出现大于100%的情况,这是因为读取数据的时候是非原子操作。
svctm是平均每次请求的服务时间。从源代码里可以看出:(r/s+w/s)*(svctm/1000)=util。举例子:如果util达到100%,那么此时svctm=1000/(r/s+w/s),假设IOPS是1000,那么svctm大概在1毫秒左右,如果长时间大于这个数值,说明系统出了问题。
await是平均每次请求的等待时间。这个时间包括了队列时间和服务时间,也就是说,一般情况下,await大于svctm,它们的差值越小,则说明队列时间越短,反之差值越大,队列时间越长,说明系统出了问题。
avgqu-sz是平均请求队列的长度。毫无疑问,队列长度越短越好。
说明:svctm参数在未来某个版本的iostat会被删除,官方文档是这样描述原因的:
The average service time (svctm field) value is meaningless, as I/O statistics are calculated at block level, and we don’t know when the disk driver starts to process a request. For this reason, this field will be removed in a future sysstat version.
另外,有时候iostat会显示一些很离谱的结果,官方FAQ给出了如下的解释:
Because of a Linux kernel bug, iostat -x may display huge I/O response times (svctm) and a bandwidth utilization (%util) of 100% for some devices. Indeed these devices have a value for the field #9 (beginning after the device name) in /proc/{partitions,diskstats} which is always different from 0, and even negative sometimes. Yet this field should go to zero, since it gives the number of I/Os currently in progress (it is incremented as requests are submitted, and decremented as they finish). To (temporarily) solve the problem, you should reboot your system to reset the counters in /proc/{partitions,diskstats}.
如果大家想要更系统的了解关于IO的相关知识,可以参考如下资料:
Getting the hang of IOPS
Basic I/O Monitoring on Linux
发表评论
-
windows下自带命令行工具查看CPU资源情况等
2018-06-04 12:53 3095微软提供了不少命令行 ... -
挂载文件系统选项nodiratime、noatime等集合小结
2018-06-02 19:56 2658Linux系统文件有三个主 ... -
Linux如何查看当前占用CPU或内存最多的K个进程
2018-05-20 11:01 3293内存 可以使用以下命令查使用内存最多的K个进程 方法1: p ... -
(转)使用frp实现内网穿透
2018-05-14 13:33 2431https://www.jianshu.com/p/e8e26 ... -
docker小结1
2018-05-11 14:26 4791 通过dockerfile建立一个简单的HELLO.C,然后 ... -
LINUX下EPOLL等不错的文章收藏
2018-04-25 09:35 5551 通俗讲解 异步,非阻塞和 IO 复用 https:/ ... -
Ubuntu中root用户和user用户的相互切换
2018-04-06 12:46 10271)从user用户切换到root用户 不管是用图形模式登录U ... -
ubuntu下Virtualbox虚拟Ubuntu共享文件夹设置
2018-04-06 11:41 10051. 安装增强功能包(Guest Additions) 安装 ... -
Web网站压力及性能测试
2017-10-09 19:59 695https://segmentfault.com/a/1190 ... -
工具推荐:Netdata,Linux性能实时监测工具
2017-07-14 09:10 1170工具推荐:Netdata,Linux性能实时监测工具 http ... -
一个 Linux 下基于 Bash 的文件和数据库监控及备份工具,可发送微信报警通知
2017-07-11 07:07 1649一个 Linux 下基于 Bash 的文件和数据库监控及备份工 ... -
收藏个不错的能发送日志等警告信息等到微信的工具
2017-06-11 10:12 1072发现个将比如报警日志呀之类的提醒信息,发送给微信的好的工具,不 ... -
收藏:nginx教程从入门到精通(ttlsa出品)
2017-02-09 22:53 722http://www.ttlsa.com/nginx/ngin ... -
(转)从dstat理解Linux性能监控体系
2016-08-02 10:27 2562http://calvin1978.blogcn.com/ar ... -
linux下安装SZ,RZ命令
2016-02-26 20:59 1660在 linux 下,一般用secur crt等工具,今天居然 ... -
Clumsy —— 帮你模拟各种网络不稳定的环境,包括掉包
2014-11-14 09:12 1755Clumsy —— 帮你模拟各种网络不稳定的环境,包括掉包、延 ... -
ping+tracerout的unix下网络诊断小工具mtr
2014-07-29 22:04 1598今日才发现,原来linux中可以用ping和tracerout ... -
(转)Apache日志分割
2014-02-25 20:20 1602Apache和Ngix一样,对日志没有进行分割处理,这样很不方 ... -
linux下 cpu频率节能
2014-02-25 13:06 1428参考: http://linux-wiki.cn/wiki/z ... -
(转)最佳日志实践
2014-01-22 23:24 948http://www.bitstech.net/2014/01 ...
相关推荐
描述中再次提到了"SUN 硬盘HardError清除插件 iostat-HradErro清除.zip",这里的"iostat"是UNIX/Linux系统中的一个监控工具,用于实时监控系统的输入/输出(I/O)状态,包括磁盘活动。"HradErro"看起来可能是"Hard...
一个zabbix监控模板,用于监控系统中的nvme0n1的性能,值取自iostat。agent端脚本见文章
通过对服务器磁盘IO性能的监控和评估,可以确定服务器系统的瓶颈所在,进而进行优化和改进。 服务器IO性能评估的重要性在于,它可以帮助管理员和开发者了解服务器磁盘的性能瓶颈,进而优化服务器系统的配置、改进...
在IT系统管理中,有效地监控磁盘操作和IO性能至关重要,因为这直接影响到系统的响应速度和整体性能。`iostat`是一个强大的工具,用于实时监控Linux和Unix系统的输入/输出(I/O)活动,它可以帮助管理员识别磁盘瓶颈...
"Linux硬盘IO性能优化指南" 在Linux系统中,硬盘IO性能是服务器...iostat命令是Linux系统中一个非常有用的性能分析工具,通过使用iostat命令,我们可以了解硬盘的IO性能,优化服务器的IO性能,提高服务器的整体性能。
AIX操作系统中的iostat命令是一种强大的磁盘性能分析工具,用于监控和分析磁盘的性能和活动情况。在本文中,我们将详细介绍iostat命令的使用和解析,并探讨其在磁盘性能分析和优化中的应用。 iostat命令的基本语法...
总的来说,通过熟练运用iostat工具,我们可以有效地监控Linux系统的硬盘I/O性能,及时发现并解决问题,从而保证系统的高效稳定运行。在日常运维工作中,定期进行I/O性能检测,结合系统资源使用情况,进行优化调整,...
通过 iostat,我们可以获取丰富的 IO 状态数据,从而帮助我们更好地了解系统的性能问题。 基本使用 -------- iostat 的基本使用非常简单,只需要在命令行中输入 `iostat` 命令,后面可以添加一些参数来控制输出...
Cacti是一款开源的网络监控工具,主要用于网络设备和服务器的性能监控,提供实时和历史数据图表。在Linux系统中,Cacti可以利用iostat命令来监控系统的输入/输出(I/O)性能,帮助管理员了解磁盘、块设备以及其他...
### Linux IO实时监控iostat命令详解 #### 前言 在Linux系统管理与运维过程中,实时监控系统的I/O负载对于确保系统稳定性和性能至关重要。`iostat`工具作为一个强大的系统监视工具,能够帮助管理员监控系统中的磁盘...
本文将详细介绍一些常用的性能监控命令,包括查看网络连接性、检查网络接口、监控主机路由、磁盘I/O性能以及AIX系统的内存监视。 1. **网络连通性检查**: 使用`ping`命令可以检查与目标主机的网络连通性。例如,`...
iostat 命令是查看 Linux 系统 IO 是否存在瓶颈的重要工具之一,提供了丰富的 IO 状态数据,帮助我们快速定位系统性能瓶颈。在 CentOS 系统中,默认情况下没有安装 iostat 命令,需要手动安装。使用 iostat 命令可以...
Linux-IO性能优化基础工具和实践: 基础篇-Linux IO stack overview 基础篇-read syscall IO stack 工具篇-iostat数据可靠吗 工具篇-blktrace原理和应用 工具篇-debugfs应用 Cache server机械盘IO性能瓶颈分析 实践...
在Linux系统中,性能监控是非常重要的环节之一。当遇到性能问题时,通过一系列的工具和命令可以帮助我们快速定位问题所在。`iostat`作为其中一个重要的工具,主要用于收集、报告、监控系统的CPU和设备负载情况,特别...
磁盘IO性能监控在IT运维中扮演着至关重要的角色,特别是在服务器性能调优和故障排查过程中。无论是Linux还是Windows系统,了解磁盘IO的状态对于识别系统瓶颈和优化系统性能至关重要。 在Linux环境中,我们通常使用...
其中,磁盘IO监控是Zabbix的一项重要功能,通过监控磁盘读写性能,可以帮助管理员及时发现并解决潜在的问题,确保业务连续性和系统稳定性。 #### 二、Zabbix磁盘IO监控实施步骤 ##### 1. 所需文件与工具 - **...
《sysstat-12.2.1:深入理解Linux下的iostat命令及其源代码分析》 在Linux操作系统中,监控系统性能是管理员...通过对源代码的学习和实践,我们可以更深入地理解Linux系统性能监控,提升故障排查和性能优化的效率。
我们可以使用 vmstat -1 命令来查看虚拟内存的状态,并通过 b 参数来查看等待资源的进程数。 4. 使用 dd 命令 Dd 命令可以用来测试硬盘的 IO 负荷情况。例如,我们可以使用 time dd if=/dev/zero bs=1M count=2048...