因此,我目前正在写我的单身汉论文,我的工作是为一个推荐图片配音的网络服务云化。推荐过程的主要部分是查找~40 of索引文件。索引文件是只读的,读取应该尽可能快。我还想根据需要自动启动其他实例。我做了一些研究,有三种可能的方法
我还想做一个Raid0设置来提高索引文件的读取性能。那我该用哪种方法呢?
发布于 2011-10-04 12:08:33
注释号与上面的选项相对应。
仅仅因为快照创建的EBS卷可以在从S3完全下载完大文件之前使用,并不一定意味着EBS更快。卷几乎可以立即接受操作,但是在快照填充块时,您将体验到很高的iowait。
根据应用程序的性能要求,您可能会发现在将EBS卷投入生产之前,您需要“热身”它。这与从S3下载它实际上是一回事。(我希望看到这些选项的一些性能测试。)
这都假设将索引放到磁盘上是正确的做法。为了获得最好的性能,如果您能够负担得起足够大的实例,可以尝试将其全部加载到内存中。另一方面,简单地使用具有磁盘索引的高内存实例可能最终会使用操作系统中的标准磁盘缓冲将其加载到内存中。
根据您要索引的内容和访问它的方式,您还可以查看SimpleDB、RDS、ElastiCache。
发布于 2011-10-04 12:14:31
这个网络服务已经存在了还是你在做什么或者.因为我的回答是不要把它弄得模糊不清。为了获得最大的读取性能,我会得到一个有SSD的不错的服务器。
但是你也必须弄清楚你从“云”方面得到了什么。"Clouds“只允许您在一组地理位置不同的数据中心中创建许多实例;即使这样,您也不能保证您的最终用户将获得良好的响应时间(就像Amazon一样,如果有人在纽约的数据中心访问您的服务器,而您的客户在澳大利亚,您如何获得一致的性能?)
性能瓶颈在哪里?如何将元素解耦以提高性能?磁盘读取本身将由SSD来处理。“云”不能神奇地提高性能;它在很大程度上是应用程序体系结构的一个功能。我还没有对它进行测试,如果有人有,我想知道一般的数字,但是在您寻找提高性能时按需启动各种实例的建议似乎会导致更大的开销,从而会扼杀您的数据库性能。
此外,当您想要从磁盘中缓存@#%时,您将重点放在磁盘上。无论您的磁盘性能有多快,您都不会超过一组好的缓存服务器来保持内存中的记录热而不是磁盘上的冷。再一次,应用程序的体系结构功能。这是另一件在启动更多VM时会对您造成伤害的事情;可以说,在缓存被“启动”之前,旋转VM会杀死缓存并导致延迟。
发布于 2016-07-06 13:32:40
如果速度比我建议的使用InstanceStore而不是EBS更值得关注。
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html
https://serverfault.com/questions/318278
复制相似问题