【问题标题】:node.js 100% cpu utilization when running StatsD运行 StatsD 时 node.js 100% cpu 利用率
【发布时间】:2013-02-12 06:26:35
【问题描述】:

我想通过我所做的一些压力测试来测试 StatsD 的性能。 最终我发现当每秒有 80,000 个数据包时,Node.js 在我的环境中达到 100% 的 CPU 利用率。

我知道每秒 80,000 个事件是相当大量的事件,但我想知道是否有人知道 StatsD 对 Node.js 的限制是什么。什么是正常事件率?

另外,我可以做些什么来提高 Node.js 的性能,使其不会达到 100% 的 CPU 利用率?

【问题讨论】:

  • 你应该分享测试的代码/结果,以便我们分析。
  • 如果您发布代码,我们可能会建议对其进行一些改进。
  • 这是StatsD相关代码github.com/etsy/statsd/blob/master/stats.js:基本上它监听UDP请求并处理它。
  • 其实我觉得没办法处理,大概是Node.js对我具体环境的限制吧。但是,了解 Node.js 上的 StatsD 事件率的限制是很有趣的
  • 处理它的一种方法是聚合 Node 进程中的事件,并根据指标类型每秒/分钟/小时发送聚合指标。例如,nodetime.com 就是这样做的。

标签: performance node.js cpu-usage metrics statsd


【解决方案1】:

根据 StatsD 贡献者的说法,经过测试和测量的指标速率在每秒 15,000 - 20,000 个指标之间。 这已经足够好了,这正是我想要的。

您可以在我在 StatsD 的 github 项目中打开的问题中查看有关它的更多详细信息: https://github.com/etsy/statsd/issues/249

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-22
    • 1970-01-01
    • 1970-01-01
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    • 2016-04-08
    • 2021-03-02
    相关资源
    最近更新 更多