【发布时间】: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