通量
在执行诸如复制文件之类的操作时,吞吐量非常有用。当您执行几乎所有其他操作时,它在磁盘上的随机读写会限制您的工作。
IOPS
IOPS通常指定每个数据包的大小。例如,AWS gp2可以使用16 KiB有效负载大小执行10,000 IOPS 。这相当于160MiB / sec。但是,您不太可能一直使用全部有效负载大小,因此实际吞吐量可能会更低。NB KiB是1024字节,KB是1000字节。
因为IOPS指定的数据包大小也可以提供总吞吐量。高吞吐量并不意味着您具有高IOPS。
情境
请考虑以下情形:
- 引导您的PC。考虑一下计算机中SSD和旋转磁盘之间的区别,这是许多人亲身经历的。使用旋转磁盘时,启动时间可能是一分钟,而使用SSD时,启动时间可能会缩短到10-15秒。这是因为当请求信息时,较高的IOPS导致较低的延迟。旋转磁盘的吞吐量相当不错,为150MB /秒,尽管SSD可能更高,但这不是为什么它更快的原因-它是返回信息的较低延迟。
- 运行操作系统更新。它遍及磁盘,添加和修补文件。如果您的IOPS较低,则无论吞吐量如何,它都会变慢。
- 运行数据库,例如,从大型数据库中选择少量数据。它将从索引中读取,从多个文件中读取,然后返回结果。再次遍历整个磁盘以收集信息。
- 在PC上玩游戏。它可能会从整个磁盘加载大量纹理。在这种情况下,可能需要IOPS和吞吐量。
LTO胶带
考虑一下磁带备份系统。LTO6可以达到400MB / sec,但是(我在这里猜)可能甚至不能做一个随机IOP,每个IOP可能低至几秒钟。另一方面,如果将IOPS定义为在磁带上读取或写入一小包数据,它可能可以执行很多顺序的IOPS。
如果您尝试从磁带启动操作系统,则将花费很长时间(如果它可以正常工作)。这就是为什么IOPS通常比吞吐量更有用的原因。
要了解存储设备,您可能想知道它是随机的还是顺序的IOPS,以及IO大小。由此可以得出吞吐量。
AWS
请注意,AWS确实会在此页面上发布其所有存储类型的IOPS和吞吐量数据。通用SSD(gp2)可以执行10,000个16KiB IOPS,最大速度为160MB /秒。预配置的IOPS(io1)为20,000 16KiB IOPS,最大速度为320MB /秒。
请注意,使用gp2卷时,每GB调配可获得30IOPS,因此,要获得10,000 IOPS,则需要333.33GB卷。我不记得io1卷是否有类似的限制(自从我参加了测试这类事情的联考以来已经有一段时间了),但是我怀疑它们确实如此,如果是的话,则大概是每GB 60IOPS。
结论
高顺序吞吐量很有用,并且在某些情况下是性能的限制因素,但是在大多数情况下,高IOPS可能更为重要。当然,无论IOPS多少,您仍然需要合理的吞吐量。