首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >插入mongodb (pymongo)时的效率

插入mongodb (pymongo)时的效率
EN

Stack Overflow用户
提问于 2012-10-02 21:55:10
回答 1查看 913关注 0票数 1

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

(1)跟踪光标。

代码语言:javascript
复制
while WSHandler.cursor.alive:
        try:
            doc = WSHandler.cursor.next()
            self.render(doc)

(2)插入如下:

代码语言:javascript
复制
def on_data(self, data):                      #Tweepy
    if (len(data) > 5):
        data = json.loads(data)
        coll.insert(data)                     #insert into mongodb
        #print(coll.count())
        #print(data)

它运行了一段时间(以每秒50次插入)。然后,在20-60秒之后,它会跌跌撞撞,撞上cpu的屋顶(尽管它以前运行的速度是20% ),永远也不会恢复。我的蒙古人正在潜水(潜水如下所示)。

Mongostat产出:

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

当我使用print(data)运行上面的Tweepy行,而不是将它添加到db (coll.insert(data))中时,在15%的cpu使用率下,一切都运行得很好。

我在蒙古人身上看到的是:

  • res继续爬升。(尽管堵塞可能发生在40米处,但也可能在100米时运行良好。)
  • flushes似乎不干预。
  • locked %在0.1%时稳定。这最终会导致堵塞吗?

(我正在运行AWS微实例;pymongo。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-03 01:22:22

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

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

我要看的前两件事是锁百分比和数据吞吐量。通过在专用机器上的合理吞吐量,我通常在遭受任何退化之前,每秒进入1000-2000更新/插入。对于我工作过的几个大型生产部署来说,情况就是如此。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12698949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档