如何debuggingNode + Socket.io CPU问题

我们使用Express 3运行Node Socket.io服务器。使用Forever监视服务器。 该服务运行良好,但CPU一直在增长,直到达到90%以上,然后突然下降到20%左右,如下图所示。 我相信,永远是重新启动应用程序所造成的下降。

CPU行为

我想知道的是

  • 什么是可能导致Node.js应用程序行为的典型因素?
  • 什么工具/方法可用于debugging节点应用程序中的内存泄漏/ CPU占用?

我认为这可能与Socket.io在用户断开连接时没有清理资源有关,尽pipe文档说Socket.io会自动pipe理这些资源。

任何帮助将不胜感激,这个问题是使我们的服务器pipe理非常困难。 请让我知道这个问题是否会更适合StackOverflow。

更新:经过更多的研究,看起来CPU并不直接与连接数相关。 我们的临界质量似乎大约是1500个并发连接,如下所示:

  • xhr-polling:767
  • websocket:692
  • jsonppolling:80

有时我们可能只有500个连接,而其他时间只有1500个连接。 我知道发送邮件的速度有很大的影响,但速度是相当一致的。

我有完全相同的问题,可悲的是,没有人对我们有任何build议…

这里是我的问题,解释了node.js,mongodb,redis,关于ubuntu在生产中的性能下降,RAM是免费的,CPU 100%