深信服社区»版块 其他产品 通用技术 linux运维常用命令之iostat

linux运维常用命令之iostat

查看数: 1302 | 评论数: 5 | 收藏 2
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-9-26 18:40

正文摘要:

本帖最后由 CQxxk 于 2019-9-26 18:40 编辑     上一篇文章详细介绍了使用top命令来整体的检查Linux系统负载的情况,本次主要讲如何通过命令来判断Linux系统IO的情况,是否是因为磁盘IO问题导致的系统 ...

回复

新手884373 发表于 2023-2-21 22:40
util指的是采样周期内in_flight不为0的时间相对于总时间的占空比。
    但是这又带来了另外一个问题,util这个指标本意是用来表示磁盘当前的负载或者说磁盘性能的使用率,按照上面的定义计算的方法显然是有问题的,例如我有个盘处理1个I/O需要的时间是1ms,有能力并行处理10个I/O(有10个IO队列),一共有1000个I/O需要处理,如果我每次合并I/O数都是10那么总处理时间应该是100ms,util计算结果100/1000=10%,但是如果我把它串行起来一次只下发一个,那么总完成时间就是1000ms,util计算结果就1000/1000=100%,所以这个值在一定意义上取决于内核如何合并优化IO请求或者也取决于上层应用读写的离散程度,从这个角度来说util已经没有什么实际意义了。
    另一种更直观的场景,我上层发起IO的对象肯定是不唯一的,依然假设处理一条IO的时间为100ms,磁盘有10个队列,0-0.1s 在第一个队列中有IO,0.1-0.2s在第二个队列中有IO,依此类推如图,这样的话整个1s中in_flight始终不为0,所以计算得到的util = 100%,但是这显然不符合时间情况。 PS:svctm:已被废弃的指标,没什么意义,svctm=[util/tput]
蟲爺 发表于 2022-3-6 00:54
感谢分享
carl 发表于 2019-10-25 09:08
楼主对linux研究很透啊,最近分享了很多linux相关的知识点
ie5000 发表于 2019-10-9 09:36
流弊克拉斯,linux对我来说一直很神秘
范加龙 发表于 2019-9-27 09:24
写得很详细,收藏一下,备用着