簡體   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