繁体   English   中英

MongoDB写入性能

[英]MongoDB write performance

给定的是,在一台计算机上平均拥有550bytes的 20M文档PHP驱动程序

首先插入 (不是mongoimport), journal on, WriteConcern to default (1) 花了大约12个小时 然后让我感到奇怪,所以我尝试了第二次导入。

其次,我将batchInsert()--nojournal and WriteConcern=0并记下了性能。 总共花了12个小时 有趣的是,开始每分钟插入40000 records ,但最终却是每分钟2500 records ,我只能想象到40000 records结束时每分钟要插入100 records

我的问题是:

  1. 我假设通过关闭日记功能并使w = 0并使用batchInsert(),使总插入量显着下降!
  2. 如何解释每分钟插入次数的显着下降?

-更新-

机器是Core Duo 3GHz,具有8GB RAM。 在整个过程中,RAM使用率稳定在%50。 但是,CPU使用率很高。 在PHP中,我有ini_set('memory_limit', -1)来不限制内存使用。

如果仅一次迁移,则建议您在插入之前删除所有索引。 使用deleteIndex(..)方法。

完成所有插入操作后,使用isureIndex(..)取回索引。

PS。 从您提供的数字来看,它不是大量数据,可能是您错误配置了MongoDB服务器。 请提供您的MongoDB Server配置和内存大小,也许我可以找到其他需要改进的地方。

回答您的(2)问题,可能是您的服务器在进行某些插入操作后运气不足。

经过大量的拔头发,我意识到积压的效果。 当我将文档排成5000行时,很有趣,批量插入就像魔术一样工作,并且在不到4分钟的时间内导入了!

这个工具给了我一个主意: https : //github.com/jsteemann/BulkInsertBenchmark

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM