Mongodb tailable游标,高CPU使用率 - nodejs + mongodb

时间:2014-11-17 10:55:44

标签: node.js mongodb

您好我一直在尝试使用mongodb tailable游标来获取我的图表上的实时数据,到目前为止,它对一些小问题都很好..其中一个主要问题与高CPU使用率有关,在我的第一次调用时为mongo tailable query设置了以下选项

tailable: true,
awaitdata: true,
numberOfRetries: -1

cpu的使用率几乎是8-10%,之后每增加一个请求就会增加相同的负载量...

然而,当我将其更改为

tailable: true,
awaitdata: false,
numberOfRetries: -1,
tailableRetryInterval: 200

cpu使用率下降且一切都很好

awaitdata {Boolean},awaitdata允许游标等待数据,仅适用于tailable游标。

tailableRetryInterval {Number},tailableRetryInterval指定tailable游标上getMores之间的毫秒数。

我的问题是,最好关闭awaitdata并使用tailableRetryInterval,这在cpu上很容易,或者我做错了什么?

1 个答案:

答案 0 :(得分:2)

  1. CPU使用率为10%不算什么。真。使用过的资源是很好的资源,因为它们实际上用于比闲置更有用的东西。当然,直到某个门槛。
  2. 当你减少检查tailable游标的时间间隔时,就像你所做的那样,当然CPU的使用更少。这实际上取决于您的用例的样子。如果您可以忍受在处理条目之前存在一定延迟的事实,那就没问题。但通常情况下,您希望尽可能快地处理事物。还要记住,当您等待一段时间时,多个条目可能已进入上限集合 - 并且它们的处理可能需要时间和CPU周期。我倾向于尽可能地保持CPU负载并且不惜一切代价防止尖峰。因为当由于不同原因引起的尖峰同时发生时,你就会遇到麻烦。
  3. 很难说除非我们知道您的功能和非功能需求,约束,用例或单行代码,否则您是否做错了。
相关问题