MongoDB - 涉及排序的间歇减速

时间:2014-11-20 18:50:29

标签: mongodb sorting

我和几个伙伴一起遇到MongoDB的严重问题。在我进入之前,让我们先了解一些统计数据。

使用Softlayer运行专用VPS

-Ubuntu 13.04 inside an ESX VM
-4 Virtual cores running at 2.0 GHz each
-48GB of RAM
-All on an SSD
-MongoDB Version 2.6.5 (and issue happening on the last 6 releases)

使用2dsphere索引进行多边形地理查询,以及添加了int和booleans的其他一些变量。总共有大约7个密钥,我们将一次查询,然后根据用户请求排序的方式对它们进行排序(价格,最接近位置的位置等)。

现在这里的事情变得非常复杂。在当天的随机时间,特定位置将在合理的时间内停止返回查询,而不是在30到150秒内返回300到2000毫秒的平均值,这仅适用于特定位置。寻找纽约市将会回归,但寻找伦敦英格兰将需要很长时间。

第二个我们改变了哪个键被排序(我们甚至尝试按_id排序)一切都恢复正常。然后,该排序键将随机位置中断,并通过翻转它进行修复。我们发现修复的另一种方法是完全重新索引键是按顺序排序(删除并重新创建),但随后我们的搜索会缩短重建索引所需的时间。

当然,这种方法很有效,但改变排序方法会失去目的,重新编制索引只是对不应发生的事情进行越来越多的停机。

这个问题可能是一堆事情,所以让我快速浏览一下我们诊断出的并发现不是问题的那些。

-Does not relate to amount of users accessing database (Could be 0, could be 1000).
-Lock is averaged at 2.5% or below.
-Btree is normal between 0 and 200.
-Happens even when not writing to database (and haven't done so in hours)
-CPU usage is minimal
-RAM usage is only 60% average.
-Data in listings are valid.
-All keys within the indexes are the proper types. No string in int indexes, no datetimes in float indexs, ect.
-Has nothing to do with how many results are returned. Issue happens in locations where there is 10000 results, or just 5.
-No errors in logs, no errors in MMS, no errors anywhere... Just slow.

我在这里没有想法,我根本无法弄清楚它可能是什么。有没有人遇到过这样的事情?或者对它可能是什么有任何想法?任何事情都表示赞赏。如果我忘记提及某些内容或需要重做我已经解释过的内容,那么请问,不要重写问题。再次感谢。

0 个答案:

没有答案