我对Mongodb和EC2了解不多。所以作为外行,我的问题是,如果 mongodb 服务器安装在 STANDARD SMALL EC2 LINUX/UBUNTU 实例上,mongodb 服务器可以处理多少 I/O(每秒 kb/mb/gb)。
是否有任何公式或软件或网站可以告诉服务器的最大强度或输出?
注意:Mongodb 和 EC2 实例以默认模式安装。
提前致谢
我对Mongodb和EC2了解不多。所以作为外行,我的问题是,如果 mongodb 服务器安装在 STANDARD SMALL EC2 LINUX/UBUNTU 实例上,mongodb 服务器可以处理多少 I/O(每秒 kb/mb/gb)。
是否有任何公式或软件或网站可以告诉服务器的最大强度或输出?
注意:Mongodb 和 EC2 实例以默认模式安装。
提前致谢
没有一个特定的公式可以确定您可以在服务器上运行什么,因为这将根据您的服务器配置以及您的应用程序(和服务器)当时实际在做什么而有很大差异。还将有一个平均负载与峰值负载..这可能要高得多。
例如:
对于 MongoDB,一个有用的起点是关于Optimization的文档。
您应该为资源监控设置一些主动服务(例如Munin),以了解您的应用程序随着时间的推移的使用模式。
要估算您的应用程序可以处理的内容,您还可以尝试使用众多基准测试工具之一进行负载测试。那里的关键是制定准确的测试配置文件,并确定要解决的潜在性能热点/弱点。
TL/DR:在我们的测试中,使用 EBS 的 M1.Large 可以(平均)每秒处理大约 250 个非顺序 i/o 操作。在大小测试中,这通常不会超过每秒 20-30MB。这是 AWS 的“高”IO 设置的一部分。对于 Smalls,它们属于“中等”IO,所以为了安全起见,它大约是该输出的 1/2 到 2/3……尽管在全面披露中,我们还没有对较小的实例进行任何测试。
更长,更漫无边际的答案...
这是一个复杂的问题,因为它最终取决于您的活动数据集有多大,以及它是否明显超过与该实例关联的 1.7GB RAM。不适合内存的数据越多,MongoDB 将不得不去磁盘获取数据的次数越多,并且当数据库等待(臭名昭著的)Amazon IO 返回时,您的应用程序将更多地等待数据库向它请求数据。
此外,使用 MongoDB 的锁,如果您更容易受到较慢的 IO 的影响(即插入和更新......主要是更新),那么争用也会让您受益。
此外,如果您不想担心这些问题并且能够有效地扩展,您可以使用其中一种 MongoDB 托管服务(如 MongoHQ ...免责声明,我是创始人),因为它们允许您有效地扩展随着您的成长,您可以更轻松地在不同级别测试 IO。
因此,RAM 和 I/O 性能是选择实例时需要考虑的重要因素。
此 AWS 白皮书可能会有所帮助: http: //media.amazonwebservices.com/AWS_NoSQL_MongoDB.pdf