AWS EBS:什么是 IOPS?

AWS EBS: What is IOPS?

EBS 谈论 IOPS。然而,IOP 到底是什么意思?

我在网上找到了这个:

"IOPS (input/output operations per second) is a popular performance metric used to distinguish one storage type from another."

好的,但是我们在谈论什么类型的 input/output 操作?假设我想读取一个 1GB 的文件和 1MB 的文件,我无法想象两者都只是一个 IOP。到目前为止,在我看来 IOPs 是一个与物理测量无关的单位。因此,什么是 IOP 的问题?

单个 IOP 是一个操作(读取或写入),这不应与人类看待操作的方式相同(例如访问 1 个文件是 1 个操作)。

如果单个 IOP 操作用于一个 32KB 的块,并且您正在尝试读取一个 1GB 的文件,那么总共有 31250 个 IOP,但是这个指标是 IOP,所以您关心的值是这些的总数您每秒可以执行的操作。

上面的例子简单来说磁盘有3000个IOP,执行这个读操作需要10.42秒。然而,这很简单,并且存在许多过度因素,包括与并行发生的其他操作的争用。此外,使用模式通常更加随机,这导致 IOP 使用根据需求而变化。

I/O characteristics and monitoring 文档中提供了更详细的分类。

正如@jordanm 在对您的问题的评论中已经提到的,每次读取操作最多只能读取块大小。而GUID分区table(GPT)的块大小是4096字节,这是一种常见的分区方案。

您可以通过将 IOPS 乘以块大小来计算 MB/s 中的吞吐量。因此,给定 3000 的 IOPS 和 4096 字节 (4KB) 的默认块大小,您将拥有:

3,000 * 4KB = 12,000 KB/s = ca. 12 MB/s