为清楚起见进行了更新:插入/附加到capped collection
. 我有两个 python 脚本正在运行:
(1) 拖尾光标。
while WSHandler.cursor.alive:
try:
doc = WSHandler.cursor.next()
self.render(doc)
(2) 像这样插入:
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% 的速度运行),并且再也没有恢复。我的 mongostats 潜水(潜水如下所示)。
Mongostat 输出:
CPU 现在被执行插入的进程阻塞(至少根据htop
)。
当我运行上面的 Tweepy 行print(data)
而不是将其添加到 db ( coll.insert(data)
) 时,在 15% 的 cpu 使用情况下一切运行良好。
我在 mongostats 中看到的:
res
不断攀升。(虽然堵塞可能发生在 40m 并且在 100m 上运行良好。)flushes
似乎不干涉。locked %
稳定在 0.1%。这最终会导致堵塞吗?
(我正在运行 AWS 微实例;pymongo。)