[英]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
。
我的問題是:
-更新-
機器是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.