IOPS(在Amazon EBS中)在实践中意味着什么



我有一些应用程序所需的图像。有许多图像(50000+),但总体尺寸较小(40Mb)。起初,我以为我会简单地使用S3,但上传速度非常慢。作为一个临时的解决方案,我想附加一个包含图像的EBS,这很好。然而,在阅读了一些关于EBS通用(gp2)的内容后,我注意到了以下描述:

GP2是AmazonEC2实例的默认EBS卷类型。这些卷由固态驱动器(SSD)备份,适用于广泛的事务性工作负载,包括开发/测试环境、低延迟交互式应用程序和引导卷。GP2旨在提供个位数的毫秒延迟,提供3 IOPS/GB到最大10000的一致基线性能IOPS,并为每个卷提供高达160 MB/s的吞吐量。

我担心的是3 IOPS/GB的数量。这在实际意义上意味着什么?假设您需要一个面向少量用户的电子商务网站(例如,每分钟<10000个请求),并且需要检索这些图像。亚马逊介绍了IOPS的测量方法:

当小型I/O操作在物理上连续时,Amazon EBS尝试将它们合并为最大大小的单个I/O。对于例如,对于SSD卷,单个1024 KiB I/O操作将起作用作为4个操作,而每个4 KiB的256个I/O操作将算作256个操作。

这是否意味着,如果我想在不到一秒钟的时间内检索50个10kB的图像,我需要50 IOPS,并且很容易超过3 IOPS的基线?

更新

由于Mark B的建议,我能够使用S3上传我的文件。然而,我仍然想知道执行常见任务(如运行数据库或为web应用程序提供其他文件)所需的IOPS数量。根据您的经验,我很高兴听到一些关于IOPS最小值的参考值。

您缺少该语句的"/GB"部分。基线是每GB 3 IOPS。如果您的EBS卷为100GB,则您的基线IOPS为300。对于GP2 EBS卷,您必须将卷的大小乘以3才能获得IOPS。

请注意,1TB以下的任何GP2卷也可以以3000 IOPS的速度爆发,因此IO的任何有限增长都应该表现得很好。


此外,我还要补充一点,S3听起来更适合您的用例。如果您看到S3的上传速度较慢,这是一个可以解决的问题。您可以使用CloudFront提供附近的边缘位置,以便上传到。

根据我的经验,上传到S3永远不会比上传到您的EBS卷将连接到的EC2实例慢。


更新:

为了回答您的额外问题,所需的最小IOPS将取决于许多变量,如可用RAM的数量、运行的应用程序类型、应用程序在内存中缓存值的程度、IO操作的平均大小等。很难确定一个确切的数字,并说明应用程序需要X IOPS。

您还需要记住,任何大小低于1TB的卷仍可以在几秒钟内爆发3000 IOPS。因此,即使您的应用程序在使用时需要高IOPS,如果使用率不高,IOPS突发功能可能就是它所需要的。

一般来说,我通常从一个100GB、IOPS为300的卷开始,并根据这个卷测试我的应用程序的性能。一个完全在RAM中运行的web服务器可能永远不需要更多。对于像数据库这样的东西,您可能会从您认为需要的磁盘空间量开始,然后开始性能测试。CloudWatch将显示您的应用程序正在使用的IOPS数量,如果您看到它在您的卷限制下达到最大值,那么您就知道需要增加可用IOPS。冲洗并重复此操作,直到性能测试期间不再达到可用IOPS的最大值。

@Mark B的答案可能是正确的,因为它指出您的IOP是基于EBS卷的大小。对于您想要的,S3是最好的选择。

但根据您的用例和需求,可能需要EBS。如果您想运行数据库,这一点尤其正确。在这种情况下,您有几个选择。

您可以获得Provisioned IOPS—如果您知道需要5000 IOPS,但只需要100GB的存储空间(使用gp2通常可以为您提供约300 IOPS),则可以使用io1卷。这会带来额外的成本,您需要确保它连接到EBS优化的实例,但如果需要,您可以获得高达20k的IOPS。

如果您正在进行大量的顺序读取(读取大型数据集?),那么就有一种新类型的EBS,st1。这对于500MB/s来说是很好的,并且成本不到gp2的1/2。

最后,还有一种情况你可以考虑(比如,你有点疯子,想尝试做一些奇怪的事情)。如果您可以从某个地方获取存档,并且您所关心的只是从一个非常快速的文件系统中提供它们,那么您可以将它们放在具有实例存储的实例上。这是一个本地连接的SSD,所以速度非常快。唯一的缺点是,当您的实例停止时,您的数据就不见了。

要解决您的更新问题,"数据库需要多少IOPS",答案是"取决于"。每个数据库引擎都有不同的需求,每个数据库使用都有不同使用模式。如果你想了解更多信息,可以看看这个。但基本上,测试&班长如果你担心,在发布时过度供应,并根据需要缩减规模。或者猜测一下,如果遇到问题,增加成本——是将成本降至最低更重要,还是为最终用户提供良好的性能更重要?

根据您的使用情况,s3是一个更好的选择,但如果您想使用EBS卷并认为它们需要更多IOPS,则可以选择gp3卷类型而不是gp2。在gp3卷中,独立于吞吐量可以增加16000 IOPS(此外,独立于IOPS,吞吐量可以增加1000 MiB/s)。

通用SSD(gp2)卷提供经济高效的存储,非常适合各种工作负载。这些卷提供了个位数的毫秒延迟,并能够在较长时间内突发到3000 IOPS。在最低100 IOPS(33.33 GiB及以下)和最高16000 IOPS(5334 GiB及以上)之间,基线性能以每GiB卷大小3 IOPS的速度线性扩展。AWS将gp2卷设计为在99%的时间内提供90%的规定性能。gp2体积的大小可以在从1GiB到16TiB的范围内。链接:

  1. 链接

有时性能也会有所不同:根据AWS Doc,实例类型可以支持30分钟的最高性能,至少每24小时一次。如果您的工作负载需要持续30分钟以上的最大性能,请根据基线性能选择实例类型链接:

  1. 链接

最新更新