![磁盘 iops 与延迟](https://linux22.com/image/774298/%E7%A3%81%E7%9B%98%20iops%20%E4%B8%8E%E5%BB%B6%E8%BF%9F.png)
我试图了解 iops 和延迟之间的区别,这是我的问题:
如果假设磁盘每秒有 2 个 io,那么它的延迟将是 0.5 秒?
答案1
我试图了解 iops 和延迟之间的区别,这是我的问题是:
如果一个假设的磁盘每秒有 2 个 io,那么它的延迟会是 0.5 秒?
- 每秒输入/输出次数是每秒完成的 I/O 操作数
- 潜伏意味着有一个延迟在 IO 完成之前,不仅因为其数量(正在发送的数据量)而且即使请求的数据量非常小。因此,这有点像惩罚每个单独的 IO 操作需要除了转机时间本身— 即带宽依赖。
让我们回顾一下:
如果假设磁盘每秒有 2 个 io,那么它的延迟将是 0.5 秒?
希望现在答案是“有可能”。因为如果每个 I/O 都很长(延迟 0.1 秒 + 发送数据 0.4 秒),显然这 2 个 I/O 总共需要 1 秒才能完成,但根据定义(公式),延迟只有 0.1 秒。另一方面,如果您知道无论数据传输多么少,但只完成了 2 个 IOPS,那么,是的,延迟是 0.5 秒。
PS 顺便说一句,类似的事情也发生在网络领域。您ping
以尽可能最小的数据长度运行并估算通道的延迟,然后增加其长度或下载足够大的文件并curl
计算出通道的带宽。
答案2
如果你指的是满载磁盘,并且显示最多 2 iops,我们可以说平均的延迟为0.5秒。
如果您正在分析正在运行的系统的一些性能数据,这些数据表明在一段时间内磁盘处理了 2 iops,那么情况就不那么简单了。磁盘可能正在快速完成其 I/O(延迟低),然后在其余时间处于空闲状态,因为没有请求需要处理。如果有更多的 I/O 负载,它可能已经显示出更多的 iops。在这种情况下,我们唯一能说的是,它的平均的延迟是最多0.5秒。
答案3
IOPS 不是延迟。
IOPS 是每秒的操作数;随着从设备请求的 IOPS 数量的增加,延迟将会增加。
假设您的磁盘为 2 IOPS。如果您同时发送 2 个请求,则平均需要 1 秒才能完成。如果您同时发送 20 个请求,则需要 10 秒才能完成,因此任何额外的请求都将有 10 秒的延迟,因为它们正在等待其他请求完成。
简化了,但是是一个很好的例子。