减少内存使用量和MongoDB的FAILCNT(撰写)

时间:2017-02-17 16:42:01

标签: node.js mongodb performance database-performance compose

我有一个Compose.io MongoDB部署。 部署有一个数据库(11.5 GB),包含18个集合和文档:

Collection      Documents   Size

a..             195         168 KB
b..             39          40 KB
c..             4           8 KB
d..             1754        680 KB
u..             2939580     2.47 GB
i..             2           8 KB
i..             161036      232 MB
i..             54371       10.7 MB
i..             14011       2.66 MB
n..             1839711     1.08 GB
o..             535         10.7 MB
r..             13150       2.66 MB
r..             8367        2.66 MB
r..             503         168 KB
s..             0           8 KB
t..             1776        2.66 MB
t..             953418      4.47 GB
h..             38563       82.3 MB

我遇到了与使用memoryFAILCNT相关的性能问题。虽然我已经缩放了机器。

现在我的配置是:

  • 1个副本集中的3个数据节点和1个仲裁器,具有25GB存储空间/ 2.49GB内存
  • 内存为768MB的Mongo路由器

费用:$ 562.00 /月

我尝试了几种变体,缩放了路由器和碎片的内存: enter image description here

但我无法降低FAILCNT

现在我有以下表现(使用最新配置): enter image description here

我想知道这是否属于正常行为。

如果有任何方式optimize这个,以及scale。如果服务费用很高,或者可以找到更便宜的服务。

我正在改进MongoDB indexes,看看我是否可以改进,

1 个答案:

答案 0 :(得分:0)

索引支持在MongoDB中高效执行查询。如果没有索引,MongoDB必须执行集合扫描,即扫描集合中的每个文档,以选择与查询语句匹配的文档。如果查询存在适当的索引,MongoDB可以使用索引来限制它必须检查的文档数。

[https://docs.mongodb.com/manual/indexes/]