我有一些应用程序所需的图像。图片很多(50,000+),但整体大小很小(40 Mb)。最初,我以为我只会使用S3,但是上传起来很慢。作为一种临时解决方案,我想附加一个包含图像的EBS,这样就可以了。但是,在阅读有关EBS通用(gp2)的内容时,我注意到以下描述:
我担心的是3 IOPS / GB数量。实际上意味着什么?假设您需要一个用于少量用户的电子商务网站(例如,每分钟describes如何测量IOPS:
这是否真的意味着如果我想在一秒钟内检索50张10kB的图像,我将需要50 IOPS并轻松超过3 IOPS的基准?
更新:
感谢Mark B的建议,我得以使用S3上传文件。但是,我仍然想知道执行常见任务(如运行数据库或为Web应用程序提供其他文件)所需的IOPS数量。根据您的经验,我很高兴听到一些有关IOPS最小值的引用值。
最佳答案
您缺少该语句的“ / GB ”部分。基准是每GB 3 IOPS 。如果您的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达到最大值为止。
关于amazon-web-services - IOPS(在Amazon EBS中)实际上意味着什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37058095/