IOPS 与吞吐量。选择 AWS EBS 时使用哪一个
IOPS vs Throughput. Which one to use while choosing AWS EBS
在选择合适的 EBS 卷类型时,我需要决定 if IOPS or throughput is a better performance measure.
问题是我不完全明白他们每个人在哪个实际场景中比另一个更好。
这个文档说“frequent read/write operations with small I/O size”非常适合 IOPS。
- 但是 频繁 操作高 I/O 大小呢?
- 不频繁 操作高 I/O 大小?
- 不频繁 操作小 I/O 大小?
为什么吞吐量不是 "frequent read/write operations with small I/O size" 的完美衡量标准?
我在 this and 个问题中找不到答案。
让我们试着解释什么是吞吐量和I/O。
I/O是访问磁盘的次数。每次需要读取一个文件,需要"at least"访问一次文件。然而,内容是在 "chunks" 中读取的,每次您读取 "chunk" 时,都会请求一个新的 I/O。
想象一下咬巧克力棒,您至少需要访问一次巧克力棒,然后开始咬 (I/O) 直到结束。每一口都是I/O。您需要几个 I/O 才能吞下整个酒吧。
IOPS 是每秒 I/O。速度。所以基本上我们可以多快地咬巧克力棒。 IOPS EBS 是一个专门用于执行快速咬合的卷: Ñam-Ñam-Ñam vs Ñam------Ñam-----Ñam
吞吐量是您在每个 I/O 中阅读的信息量。按照示例,您可以用两种不同的方式吃掉整块巧克力,小口(小吞吐量)或大口(大吞吐量),这取决于您的嘴巴大小。
Througput EBS volume专门用于执行big biting: Ñam vs Ñaaaaaaaam
I/O和Throughput有关系吗?当然。如果您必须从 EBS 读取一个大文件,而您的吞吐量很小(也就是您的嘴巴很小,所以您的咬合力很小),那么您需要更频繁地访问 (I/O) 直到文件被完全读取。
上午-上午-上午-上午
另一方面,如果你的嘴巴大(吞吐量大),那么你需要的咬数就会少,I/O。
Ñaaaam---Ñaaaam
所以他们可以以某种方式相互平衡,但是......有极端情况:
a) 假设您有一个非常小的小文件(或巧克力纳米棒)。
--- 在这种情况下,即使是最小的嘴巴也足够了。无论嘴巴大小,您都可以一口吃掉整个纳米棒。
b) 想象一下你有一桶无数微小的小文件(或巧克力纳米棒)
--- 在这种情况下,即使是最小的嘴巴也足以吞下每一个酒吧。吞吐量大或小都不会给您带来更好的性能。但是,拥有 IOPS(每秒 I/O)会提高您的性能。吞吐量 EBS 卷的性能将比 IOPS 卷差得多。
c) 假设您有一桶包含数以亿计的大文件。
--- 所以你需要大文件的吞吐量和多次访问的 IOPS。那么你可能应该转向 EBS 通用(它有爆裂)
有了这个你应该能够做出一个答案,但对我来说:
但是 I/O 大的频繁操作呢? --> EBS 通用。这里 "high" 和 "frequent" 要求平衡音量。
大 I/O 大小的操作不频繁? --> EBS 吞吐量。
你需要尽可能大的嘴巴。
小 I/O 尺寸不频繁操作?--> 警告!
"small" 适合您的尺码是多少?如果它们真的很小,那么我可能会转向 IOPS,因为 big/small 口(吞吐量)不会产生很大的不同。如果那些 "not frequent" 变成 "frequent"(更多用户?更复杂?)将从 IOPS 中受益。也许您也可以通过 EBS 通用型生存。
但是,第二个警告,"not frequent operations" 是什么意思,这些文件不经常访问?在这种情况下,您应该检查冷硬盘
一如既往,建议只是建议...最好的(因为您会对 "small" 的感觉感到惊讶)是在您有疑问的情况下测试性能。
用例:
- 工作负载 -> 通常是通用卷
- 数据库 -> 通常 IOPS(小数据但经常检索)
- 大数据/数据仓库 -> 通常是吞吐量(大数据文件)
- 冷硬盘 -> 冷文件服务器(移动到磁性之前的最低 IOPS)
(只是为了补充 Victor 的出色回答) 从 AWS Fundamentals Core Concepts 文档中,不同存储服务在延迟、吞吐量和 IOPS 方面的性能特征如下.
如果您使用块存储服务 (Amazon EBS):
- 延迟受卷类型选择的影响(例如,solid-state 驱动器与硬盘驱动器)。
- 吞吐量和 IOPS 容量与大多数卷类型的卷大小成正比。
如果您使用的是文件系统服务(Amazon EFS 和 Amazon FSx 系列)
- 延迟和 IOPS 受您选择的性能模式影响。
- 吞吐量受您选择使用预配置吞吐量的影响。
如果您使用的是对象存储 (Amazon S3)
- 延迟受到存储桶端点的地理距离的影响
- 吞吐量受使用 throughput-optimized 分段上传等 API 的影响
- IOPS 不可配置
如果您使用的是存档存储
- 延迟受到存储桶端点的地理距离和检索方法选择的影响
- 吞吐量受使用 throughput-optimized 分段上传等 API 的影响
- IOPS 不可配置
在选择合适的 EBS 卷类型时,我需要决定 if IOPS or throughput is a better performance measure.
问题是我不完全明白他们每个人在哪个实际场景中比另一个更好。
这个文档说“frequent read/write operations with small I/O size”非常适合 IOPS。
- 但是 频繁 操作高 I/O 大小呢?
- 不频繁 操作高 I/O 大小?
- 不频繁 操作小 I/O 大小?
为什么吞吐量不是 "frequent read/write operations with small I/O size" 的完美衡量标准?
我在 this and
让我们试着解释什么是吞吐量和I/O。
I/O是访问磁盘的次数。每次需要读取一个文件,需要"at least"访问一次文件。然而,内容是在 "chunks" 中读取的,每次您读取 "chunk" 时,都会请求一个新的 I/O。 想象一下咬巧克力棒,您至少需要访问一次巧克力棒,然后开始咬 (I/O) 直到结束。每一口都是I/O。您需要几个 I/O 才能吞下整个酒吧。
IOPS 是每秒 I/O。速度。所以基本上我们可以多快地咬巧克力棒。 IOPS EBS 是一个专门用于执行快速咬合的卷: Ñam-Ñam-Ñam vs Ñam------Ñam-----Ñam
吞吐量是您在每个 I/O 中阅读的信息量。按照示例,您可以用两种不同的方式吃掉整块巧克力,小口(小吞吐量)或大口(大吞吐量),这取决于您的嘴巴大小。 Througput EBS volume专门用于执行big biting: Ñam vs Ñaaaaaaaam
I/O和Throughput有关系吗?当然。如果您必须从 EBS 读取一个大文件,而您的吞吐量很小(也就是您的嘴巴很小,所以您的咬合力很小),那么您需要更频繁地访问 (I/O) 直到文件被完全读取。 上午-上午-上午-上午
另一方面,如果你的嘴巴大(吞吐量大),那么你需要的咬数就会少,I/O。 Ñaaaam---Ñaaaam
所以他们可以以某种方式相互平衡,但是......有极端情况:
a) 假设您有一个非常小的小文件(或巧克力纳米棒)。 --- 在这种情况下,即使是最小的嘴巴也足够了。无论嘴巴大小,您都可以一口吃掉整个纳米棒。
b) 想象一下你有一桶无数微小的小文件(或巧克力纳米棒) --- 在这种情况下,即使是最小的嘴巴也足以吞下每一个酒吧。吞吐量大或小都不会给您带来更好的性能。但是,拥有 IOPS(每秒 I/O)会提高您的性能。吞吐量 EBS 卷的性能将比 IOPS 卷差得多。
c) 假设您有一桶包含数以亿计的大文件。 --- 所以你需要大文件的吞吐量和多次访问的 IOPS。那么你可能应该转向 EBS 通用(它有爆裂)
有了这个你应该能够做出一个答案,但对我来说:
但是 I/O 大的频繁操作呢? --> EBS 通用。这里 "high" 和 "frequent" 要求平衡音量。
大 I/O 大小的操作不频繁? --> EBS 吞吐量。 你需要尽可能大的嘴巴。
小 I/O 尺寸不频繁操作?--> 警告! "small" 适合您的尺码是多少?如果它们真的很小,那么我可能会转向 IOPS,因为 big/small 口(吞吐量)不会产生很大的不同。如果那些 "not frequent" 变成 "frequent"(更多用户?更复杂?)将从 IOPS 中受益。也许您也可以通过 EBS 通用型生存。 但是,第二个警告,"not frequent operations" 是什么意思,这些文件不经常访问?在这种情况下,您应该检查冷硬盘
一如既往,建议只是建议...最好的(因为您会对 "small" 的感觉感到惊讶)是在您有疑问的情况下测试性能。
用例:
- 工作负载 -> 通常是通用卷
- 数据库 -> 通常 IOPS(小数据但经常检索)
- 大数据/数据仓库 -> 通常是吞吐量(大数据文件)
- 冷硬盘 -> 冷文件服务器(移动到磁性之前的最低 IOPS)
(只是为了补充 Victor 的出色回答) 从 AWS Fundamentals Core Concepts 文档中,不同存储服务在延迟、吞吐量和 IOPS 方面的性能特征如下.
如果您使用块存储服务 (Amazon EBS):
- 延迟受卷类型选择的影响(例如,solid-state 驱动器与硬盘驱动器)。
- 吞吐量和 IOPS 容量与大多数卷类型的卷大小成正比。
如果您使用的是文件系统服务(Amazon EFS 和 Amazon FSx 系列)
- 延迟和 IOPS 受您选择的性能模式影响。
- 吞吐量受您选择使用预配置吞吐量的影响。
如果您使用的是对象存储 (Amazon S3)
- 延迟受到存储桶端点的地理距离的影响
- 吞吐量受使用 throughput-optimized 分段上传等 API 的影响
- IOPS 不可配置
如果您使用的是存档存储
- 延迟受到存储桶端点的地理距离和检索方法选择的影响
- 吞吐量受使用 throughput-optimized 分段上传等 API 的影响
- IOPS 不可配置