我有一些图像需要一个应用程序。有许多图像(50,000+),但总体大小很小(40 Mb)。一开始,我以为我只会使用S3,但上传的速度太慢了。作为一种临时解决方案,我想附上一个包含图像的EBS,这很好。然而,阅读一些关于EBS通用用途(gp2)的文章,我注意到了以下描述:
GP2是亚马逊EC2实例的默认EBS卷类型。这些卷由固态驱动器(SSD)支持,适合广泛的事务工作负载,包括开发/测试环境、低延迟交互应用程序和引导卷。GP2旨在提供一位数毫秒延迟,提供3 IOPS/GB的一致基线性能,最高可达10,000 IOPS,并为每卷提供高达160 MB/s的吞吐量。
让我担心的是3 IOPS/GB的数量。这在实际意义上是什么?假设您需要一个供少量用户使用的电子商务站点(例如,每分钟少于10,000次请求),并且需要检索这些图像。亚马逊描述如何测量IOPS:
当小的I/O操作在物理上是连续的时,Amazon试图将它们合并成一个I/O,达到最大的大小。例如,对于SSD卷,一个1,024个KiB I/O操作将算作4个操作,而每个4 KiB的256个I/O操作将算作256个操作。
这是否意味着,如果我想在一秒钟内检索每幅10 if的图像,我就需要50个IOPS,而且很容易超过3个IOPS的基线?
更新
多亏了Mark B的建议,我才能用S3上传我的文件。但是,我仍然想知道执行诸如运行数据库或为web应用程序提供其他文件等常见任务所需的IOPS数量。根据您的经验,我很高兴听到一些关于IOPS最小值的参考值。
发布于 2016-05-05 18:59:07
您忽略了该语句中的"/GB“部分。基线是每GB3 IOPS 。如果你的EBS容量是100 EBS,那么你的基线是300 IOPS。对于一个GP2 EBS卷,您必须将卷的大小乘以3才能得到IOPS。
请注意,1TB以下的任何GP2卷也能够以高达3,000 IOPS的速度爆发,因此IO的任何有限的增加都应该表现得非常好。
此外,我还将补充说,S3听起来更适合您的用例。如果您看到的是缓慢的上传速度到S3,这是一个可以解决的问题。您可以使用CloudFront提供可以上传到的附近边缘位置。
根据我的经验,上传到S3的速度绝不会比上传到EC2实例慢得多,而您的EBS卷将被附加到其中。
更新:
要回答您的附加问题,所需的最小IOPS将取决于许多变量,如可用RAM的数量、正在运行的应用程序类型、应用程序在内存中缓存值的程度、IO操作的平均大小等。要确定一个确切的数目并声明应用程序需要确切的X IOPS是非常困难的。
您还需要记住,任何小于1TB大小的卷仍然可以在几秒钟内突破3,000 IOPS。因此,即使您的应用程序在使用时需要很高的IOPS,如果它没有看到太多的使用,IOPS特性也可能是它所需要的。
一般情况下,我通常从100 of容量的300 IOPS开始,并以此为基础测试我的应用程序的性能。一个完全在RAM中运行的web服务器可能需要更多的内容。对于数据库之类的东西,您可能会从您认为需要的磁盘空间开始,然后开始性能测试。CloudWatch将显示您的应用程序正在使用的IOPS的数量,如果您看到它达到了您的容量的极限,那么您就会知道您需要增加可用的IOPS。冲洗和重复,直到你不再最大限度的可用IOPS在您的性能测试。
发布于 2016-05-17 02:28:13
@Mark B的答案可能是正确的,因为它指出您的IOP是基于您的EBS容量的大小。对于你想要的,S3是最好的选择。
但是,根据您的用例和需求,可能需要EBS。如果您想要运行数据库,这一点尤其正确。在这种情况下,你有几个选择。
您可以获得配置IOPS --如果您知道您需要5000个IOPS,但只需要100 if的存储空间(使用gp2通常可以为您提供大约300个IOPS),您可以使用io1卷。这有一个额外的成本,你会想要确保它是附加到一个EBS优化的实例,但你可以得到高达20千个IOPS,如果需要。
如果您正在进行大量的连续读取(在一个大数据集中读取?)然后是一种新型的EBS,st1。这对于500 of /s来说是很好的,并且比gp2的成本低1/2。
最后,还有一个你可以考虑的场景(比如说,你有点疯狂,想尝试做一些奇怪的事情)。如果您可以从某个地方抓取一个归档文件,而您所关心的只是从一个非常快速的文件系统中为它们提供服务,那么您可以将它们放在一个具有实例存储的实例上。这是一个本地连接的SSD,所以它非常快。唯一的缺点是当您的实例停止时,您的数据就没有了。
要解决您的更新,“数据库需要多少IOPS”,答案是“这取决于”。每个数据库引擎都有不同的需求,每个数据库的使用都有不同的使用模式。如果您需要更多信息,请查看这。但基本上,测试和监控。如果你担心的话,在启动的时候就会有过多的供给,并在需要的时候缩减规模。或者猜一猜,如果你遇到问题就增加--降低成本或者为最终用户提供良好的性能更重要吗?
发布于 2021-07-01 03:24:20
根据您的用例,s3是一个更好的选择,但是如果一个人想要使用EBS卷,并且认为他们需要更多的IOPS,他们可以选择gp3卷类型而不是gp2。在gp3卷中,可以不依赖于吞吐量而增加多达16,000 IOPS (另外,吞吐量可以增加到1,000 MiB/s,而独立于IOPS)。
https://stackoverflow.com/questions/37058095
复制相似问题