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

时间:2016-05-05 18:48:40

标签: amazon-web-services amazon-s3

我有一些应用程序需要的图像。有许多图像(50,000+)但总体尺寸很小(40 Mb)。最初,我以为我会简单地使用S3,但上传速度很慢。作为一个临时解决方案,我想附上一个包含图像的EBS,这样就可以了。但是,阅读一下有关EBS通用(gp2)的内容,我注意到以下描述:

  

GP2是Amazon EC2实例的默认EBS卷类型。这些   卷由固态驱动器(SSD)支持,适用于   广泛的事务性工作负载,包括dev / test   环境,低延迟交互式应用程序和启动卷。   GP2旨在提供一位数毫秒的延迟,提供一个   3 IOPS / GB 的基准性能一致,最高为10,000   IOPS,每卷提供高达160 MB / s的吞吐量。

3 IOPS / GB数量令我担忧。这在实践中意味着什么?假设您需要为少量用户提供电子商务网站(例如,每分钟10,000次请求),并且需要检索这些图像。亚马逊describes如何衡量IOPS:

  

当小型I / O操作在物理上连续时,Amazon EBS   尝试将它们合并到单个I / O中,直到最大大小。对于   例如,对于SSD卷,单个1,024 KiB I / O操作将计数   作为4个操作,而每个4 KiB的256个I / O操作将被视为   256次操作。

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

更新

感谢Mark B的建议,我能够使用S3上传我的文件。但是,我仍然想知道执行常见任务所需的IOPS量,例如运行数据库或为Web应用程序提供其他文件。我很乐意根据您的经验听取一些关于IOPS最小值的参考值。

4 个答案:

答案 0 :(得分:19)

您缺少该声明的“ / GB ”部分。基线是3 IOPS 每GB 。如果您的EBS卷为100GB,那么您将拥有300 IOPS的基准。对于GP2 EBS卷,您必须将卷的大小加倍3才能获得IOPS。

请注意,1TB以下的任何GP2音量也能够以高达3,000 IOPS的速度突发,因此IO的任何有限增加仍应表现良好。

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

根据我的经验,上传到S3的速度绝不会比上传到您的EBS卷所附加的EC2实例慢。

<强>更新

要回答您的其他问题,所需的最低IOPS将取决于许多变量,例如可用的RAM量,您运行的应用程序类型,应用程序在内存中缓存值的程度,IO操作的平均大小确定一个确切的数字并说明你需要一个应用程序的X IOPS是非常困难的。

您还需要记住,任何大小不超过1TB的卷都可以在几秒钟内突破高达3,000 IOPS。因此,即使您的应用程序在使用时需要高IOPS,如果它看不到太多用途,IOPS突发功能可能就是它所需要的。

一般情况下,我通常从100GB容量和300 IOPS开始,并测试我的应用程序的性能。完全在RAM内运行的Web服务器可能永远不需要更多。对于像数据库这样的东西,你可能会从你认为需要的磁盘空间量开始,然后开始性能测试。 CloudWatch将显示您的应用程序正在使用的IOPS量,如果您看到它超出了您的卷的限制,那么您将知道您需要增加可用的IOPS。冲洗并重复,直到在性能测试期间不再超出可用的IOPS。

答案 1 :(得分:4)

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

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

您可以获得预配置IOPS - 如果您知道需要5000 IOPS,但只需要100GB的存储空间(gp2通常会为您提供大约300 IOPS),您可以使用io1卷。这需要额外付费,并且您需要确保它附加到EBS优化实例,但如果需要,您可以获得高达20k的IOPS。

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

最后,还有另外一个你可以考虑的场景(比如说,你是一个疯子,并想尝试做一些奇怪的事情)。如果你可以从某个地方获取存档,而你所关心的只是从一个非常快的文件系统中提供存档,你可以把它们放在一个有实例存储的实例上。这是一个本地连接的SSD,所以它非常快。唯一的缺点是,当您的实例停止时,您的数据就会消失。

要解决您的更新,“数据库需要多少IOPS”,答案是“它取决于”。每个数据库引擎都有不同的要求,每个数据库使用都有不同的使用模式。如果您想了解更多信息,请查看this。但基本上,测试&amp;监控。如果您担心,在启动时过度配置,并根据需要缩小规模。或者猜测,如果遇到问题就增加 - 最小化成本或为最终用户提供良好性能更重要吗?

答案 2 :(得分:1)

根据您的用例,s3 是更好的选择,但如果有人想使用 EBS 卷并认为他们需要更多 IOPS,他们可以选择 gp3 卷类型而不是 gp2。在 gp3 卷中,可以独立于吞吐量增加多达 16,000 IOPS(此外,吞吐量可以独立于 IOPS 增加至 1000 MiB/s)。

答案 3 :(得分:0)

通用SSD(gp2)卷提供了经济高效的存储,非常适合各种工作负载。这些卷可提供单位毫秒的延迟,并能够长时间扩展至3,000 IOPS。在最低100 IOPS(在33.33 GiB及以下)和最大16,000 IOPS(在5334 GiB及以上)之间,基准性能以每GiB的卷大小3 IOPS线性扩展。 AWS设计gp2卷以在99%的时间内提供90%的预配置性能。 gp2的大小范围可以从1 GiB到16 TiB。 链接:

  1. Link

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

  1. Link