我正在测试Mongo DB用于数据库中一个巨大的表约300亿记录约200字节每个。我知道Sharding是这种音量所需要的,所以我试图在一台机器上获得1到20亿条记录。我已经在具有2个CPU/6个内核和64 GB RAM的计算机上达到了10亿条记录。我输入了没有索引的文件,并且速度还可以(平均14k条记录/秒)。我添加了索引,这需要很长时间,但这是可以的,因为它是一次性的。现在将新记录插入数据库需要很长时间。据我所知,插入记录(CPU,RAM和I/O状态良好)时机器未加载。如何加速插入新记录?MongoDB插入性能 - 巨大的表与几个索引
3
A
回答
4
我建议将此主机添加到MMS(http://mms.10gen.com/help/overview.html#installation) - 确保您安装了munin-node支持,这将为您提供最多的信息。这可以让你跟踪什么可能会减慢你的速度。对不起,我不能在答案中更具体,但这里有很多很多可能的解释。一些一般性的要点:
- 添加索引意味着,索引以及你的工作数据集将在RAM现在,这可能褪去,你的资源(查找页面错误)
- 现在,你有指标,它们必须在插入时更新 - 如果所有内容都适合RAM,则应该是正常的,请参阅第一点
- 您还应该检查磁盘IO,看看它是如何执行的 - 背景平均值如何显示?
- 您是否正在运行正确的文件系统(XFS,ext4)和2.6.25以后的内核版本? (早期版本有fallocate问题())
跟进一些不错的一般信息可以在这里找到:
相关问题
- 1. 插入数据到一个巨大的索引表
- 2. ORACLE在索引表上插入性能
- 3. mongodb搜索索引性能
- 4. MongoDB的索引和非索引性能
- 5. MongoDB:插入唯一索引
- 6. 巨大的数据输入webform性能
- 7. 提高大规模索引数据库的性能插入
- 8. 巨大的性能浸
- 9. 比较MongoDB和RethinkDB Bulk插入性能
- 10. 在一个巨大的表上添加一个有效的索引
- 11. 加入巨大的表
- 12. MongoDB索引的复杂性
- 13. 索引巨大表格所需的建议
- 14. 最大数量与数量查询的巨大性能差异
- 15. 创建一个巨大的查找表,关于性能问题
- 16. 在索引中插入一个列表
- 17. 插入聚簇索引表
- 18. 跟踪MongoDB性能?
- 19. 在巨大的表格搜索
- 20. JQGrid标题插入巨大的标题
- 21. MongoDB背景索引大小
- 22. Solr索引合并后只有一个巨大的文件IndexMergeTool
- 23. SQLite插入性能
- 24. 在两个联合(UNION ALL)巨大表中改进SELECT性能
- 25. 更新与插入性能
- 26. 优化的表与一个巨大的文本字段
- 27. foreach的巨大性能问题
- 28. 巨大的性能影响(Angular2)
- 29. MySQL的 - 插入与外键索引
- 30. 代表一个巨大的矩阵/表
你能告诉我们的插入速度是什么呢?也许平均每个插入毫秒。 – 2012-03-27 17:15:44
现在的插入速度,在表中有10亿条记录,并且定义了2个索引,每秒大约有200条记录。 – 2012-04-01 10:28:08
2指数是什么样的指数? _id或稀疏或独特或正常? – jianpx 2013-01-26 03:46:45