Python 如何提高mongo的写入速度?
我使用mongo和sys ng保存日志 日志每秒大约有20000行 我使用mongos运行MongoWhit2Python 如何提高mongo的写入速度?,python,mongodb,pymongo,database,nosql,Python,Mongodb,Pymongo,Database,Nosql,我使用mongo和sys ng保存日志 日志每秒大约有20000行 我使用mongos运行MongoWhit2shard和3host 我在ipython In [48]: %time dddd=[qlogdb.insert({'tet':1313232,'test':1232423,'asdasds':'sdadsds'}) for i in range(100000)] CPU times: user 7.24 s, sys: 2.51 s, total: 9.75 s Wall time:
shard
和3host
我在ipython
In [48]: %time dddd=[qlogdb.insert({'tet':1313232,'test':1232423,'asdasds':'sdadsds'}) for i in range(100000)]
CPU times: user 7.24 s, sys: 2.51 s, total: 9.75 s
Wall time: 10.77 s
我认为它可以从输出日志中每秒写入10000行
在将数据插入mongo
在将数据插入到mongo
但我不确定它是否能提高写入速度
有什么办法吗?您需要每秒100000次写入,并且您对读取数据没有任何要求,即
- 您不需要数据在某个时间阈值内保持一致
- 您没有任何可靠性要求,也就是说,您不在乎是否因为N台服务器崩溃而丢失数据,也不需要编写器知道写入是否成功
In [1]: %time return_value = [collection.insert({'tet':1313232,'test':1232423,'asdasds':'sdadsds'}) for i in xrange(100000)]
CPU times: user 7.00 s, sys: 0.85 s, total: 7.85 s
Wall time: 7.86 s
In [2]: %time return_value = [collection.insert({'tet':1313232,'test':1232423,'asdasds':'sdadsds'}) for i in xrange(100000)]
CPU times: user 6.79 s, sys: 0.84 s, total: 7.63 s
Wall time: 7.64 s
In [3]: documents = [{'tet':1313232,'test':1232423,'asdasds':'sdadsds'} for i in xrange(100000)]
In [10]: %time return_value = collection.insert(documents)
CPU times: user 0.97 s, sys: 0.03 s, total: 0.99 s
Wall time: 1.00 s
In [4]: documents = [{'tet':1313232,'test':1232423,'asdasds':'sdadsds'} for i in xrange(100000)]
In [10]: %time return_value = collection.insert(documents)
CPU times: user 0.92 s, sys: 0.04 s, total: 0.96 s
Wall time: 0.98 s
range
呼叫替换为xrange
当然,如果您也阅读了要求,那么您需要查阅有关safe
和w
参数的文档。没有免费的午餐之类的东西
希望这有帮助 mongo的瓶颈是什么?您可以通过在每个碎片的主要成员上运行mongostat来解决这个问题。答案完全取决于什么是尖峰。