zs007wow 2015-02-04 06:32 采纳率: 0%
浏览 2089

mongodb 分片集群,大批量数据插入效率问题

mongodb 分片集群,大批量数据插入效率问题:
1个config、1个mongos、2个mongod shard,现有2台同配置的机器
(1)当2个shard在同一台机器时候,无论哪一台,插入效率在1w每秒左右;
当数据量达到1.5亿左右的时候,会出现flushing nmaps took xxxx秒 to xxx files 的日志信息,过几十秒就来一次,很卡。
(2)当shard分布在2台机器时候,插入效率只有1500-2000条每秒,每条数据约800字节

请问:1 数据量越大,是不是插入效率会下降,那个flushing查文档说是说内存数据写入到硬盘,为啥一开始不会出现这样的问题?
2 多台机器的网络架构需要注意什么?或者说 可能是什么其他问题造成效率差距这么大?
新手没有币请见谅

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-03 08:56
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    1. 当数据量大时,MongoDB可能会遇到内存不足的问题。在这种情况下,MongoDB将开始进行内存回收,这可能导致查询速度变慢,并且可能引发大量的内存泄漏错误。

    2. 如果你的系统是多节点的,那么你应该考虑使用一个主从复制机制(Master/Slave replication)或者一个主备复制机制(Master/Secondary replica set)。这些机制可以确保即使主节点出现问题,数据仍然可以在备用节点上保持一致性。

    3. 为了提高性能,你可以尝试以下方法: a. 尽量减少数据库中的索引数量和大小。 b. 使用分片和分区策略来优化读写操作。 c. 在写入大量数据之前,先对数据进行预处理或清理工作,例如删除重复项、填充空值等。 d. 对于大数据集,可以考虑使用分批写入的方式,而不是一次性写入所有数据。 e. 考虑使用更高效的存储引擎,比如BSON和JSON。

    4. 有关网络架构的问题,请告诉我更多详细的信息,以便我可以提供更好的建议。

    评论

报告相同问题?