插入mongodb(pymongo)时的效率

2024-05-18 07:54:52 发布

您现在位置:Python中文网/ 问答频道 /正文

为清晰起见进行了更新:在插入/附加到capped collection时,我需要关于性能的建议。我有两个python脚本正在运行:

(1)拖尾光标。在

while WSHandler.cursor.alive:
        try:
            doc = WSHandler.cursor.next()
            self.render(doc)

(2)插入如下:

^{pr2}$

在一段时间内运行良好(每秒插入50次)。然后,在20-60秒后,它会绊倒,撞到cpu的顶部(尽管它以前运行的是20%),并且再也不会恢复。我的mongostats潜水(下潜见下图)。在

变阻器输出: Mongostat output

CPU现在被执行插入操作的进程阻塞(至少根据htop)进行。在

当我用print(data)运行上面的两行代码,而不是将其添加到db(coll.insert(data))中时,cpu使用率为15%时,一切正常。在

我在mongostats看到的:

  • res继续攀升。(虽然在40米处可能会发生堵塞,在100米处也可能会跑得很好。)
  • flushes似乎没有干扰。在
  • locked %稳定在0.1%。这最终会导致堵塞吗?在

(我正在运行AWS microinstance;pymongo。)


Tags: 脚本datadoccpu性能cursor建议collection
1条回答
网友
1楼 · 发布于 2024-05-18 07:54:52

我建议在运行测试时使用mongostat。有很多事情可能是错误的,但是mongostat会给你一个很好的指示。在

http://docs.mongodb.org/manual/reference/mongostat/

我首先要看的是锁百分比和数据吞吐量。如果在专用机器上有合理的吞吐量,我通常会在性能下降之前达到每秒1000-2000次的更新/插入。在我参与过的几个大型生产部署中都是这样。在

相关问题 更多 >