2011-12-24 49 views
4

我已经在aws m1.large实例上部署了mongodb 64位2.x版本。在aws(m1.large)上使用MongoDB 64b 2.x延迟

我试图找到MONGO可以给我们在光http://www.snailinaturtleneck.com/blog/tag/mongodb/(和mongodb read/write performance and mongo hosting in the cloud

我已创建了一个分贝一个集合,即用户和AWS最佳性能插入100,000条记录/ JSON对象(每个json对象大小为4KB),使用随机数作为“user-”的后缀。此外,在用户标识上创建索引。

此外,我将db profiler设置为记录20ms或更长时间的慢速查询。我已经执行了10个线程的Java程序。每个java类用随机数生成用户标识,并在无限循环中的用户集合中找到它。有了这样的负载,我已经观察到延迟查询/读取最多60毫秒。

我还观察到,当我运行较少的线程数说3或4(查询加载用户集合每秒5K查找用户),然后我看到没有延迟或少于2毫秒的延迟。

我不明白为什么在集合中增加查找用户的负载会导致延迟。我相信mongo db可以执行更多的并发读取,然后我正在尝试并且不应该影响性能。

我认为这会是一种可能性 - 如果在单个集合上执行了大量查询(如我们的情况),那么mongo会出现性能问题,我希望在单个集合上每秒钟有10K到20K个查询。

我们将不胜感激您的想法/建议。

+0

您是否在使用任何索引?什么版本的MongoDB?你在Java上使用库吗? (如吗啡)或只是MongoDB? – inglor 2012-03-06 12:31:38

+1

你在哪里测量这个延迟?从你的Java应用程序? – 2012-05-29 11:23:07

回答

0

缺少一些信息 - 您的磁盘配置是什么?如果一切都持续到磁盘,EBS可能会造成延迟。

亚马逊已经发布了关于如何在EC2上安装mongo的最佳实践的白皮书:MongoDB on AWS。下面是它的描述

本白皮书提供了适用于所有主要NoSQL系统的一般最佳做法并强调了流行的NoSQL系统之一 - MongoDB的 - 并讨论了如何最好地在AWS的云中运行它。它进一步检查了不同的MongoDB配置,因此您可以优化它的性能,耐用性和安全性。