【问题标题】:Mongodb tailable cursor, high cpu usage - nodejs + mongodbMongodb可尾游标,cpu使用率高 - nodejs + mongodb
【发布时间】:2014-11-17 10:55:44
【问题描述】:

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

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

cpu 使用率几乎是 8-10%,之后对于每个额外的请求,它会随着相同的负载量而增加...

但是当我把它改成

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

cpu 使用率下降,一切正常

awaitdata {Boolean},awaitdata 允许游标等待数据,只适用于可尾游标。

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

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

【问题讨论】:

    标签: node.js mongodb


    【解决方案1】:
    1. 10% 的 CPU 使用率不算什么。真的。使用过的资源是很好的资源,因为它们实际上用于比闲置更有用的事情。当然,直到某个阈值。
    2. 当您减少检查可尾光标的时间间隔时,就像您所做的那样,CPU 的使用当然会减少。这实际上取决于您的用例的外观。如果您可以接受在处理条目之前存在一定延迟的事实,那很好。但通常,您希望尽快处理事情。另请记住,当您等待一段时间时,多个条目可能已进入上限集合 - 并且它们的处理可能需要时间和 CPU 周期。我倾向于尽量保持 CPU 负载均匀,并不惜一切代价防止峰值。因为当不同原因引起的尖峰同时发生时,你就有麻烦了。
    3. 除非我们知道您的功能性和非功能性需求、约束、用例或一行代码,否则很难说您是否做错了。

    【讨论】:

      猜你喜欢
      • 2016-06-18
      • 2013-08-04
      • 2016-04-29
      • 1970-01-01
      • 1970-01-01
      • 2014-07-16
      • 1970-01-01
      • 2020-08-10
      • 1970-01-01
      相关资源
      最近更新 更多