gpt4 book ai didi

node.js - 如何调试 Node + Socket.io CPU 问题

转载 作者:IT老高 更新时间:2023-10-28 23:12:55 31 4
gpt4 key购买 nike

我们正在使用 Express 3 运行 Node Socket.io 服务器。使用 Forever 监控服务器.服务运行良好,但 CPU 整天都在增长,直到达到 90%+,然后突然回落到 ~20%,如下图所示。我相信这个下降是由于永远重启应用造成的。

CPU Behaviour

我想知道的是;

  • 可能导致 Node.js 应用出现这种行为的典型因素有哪些?
  • 有哪些工具/方法可用于调试 Node 应用程序中的内存泄漏/cpu 占用?

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

任何帮助将不胜感激,这个问题使管理我们的服务器变得非常困难。我一周前在Serverfault上发布了这个问题,但没有收到回复,所以我认为这里可能会更好。

更新:经过更多研究,CPU 似乎与连接数没有直接关系。我们的临界质量似乎约为 1500 个并发连接,如下所示:

  • xhr 轮询:767
  • 网络套接字:692
  • jsonppolling:80

有时我们可能在 100% 的 CPU 上只有 500 个连接,其他时候是 1500 个连接。我知道发送消息的速率有很大的影响,但是速率相当一致。

最佳答案

我不是那么有经验,但您的 CPU 延迟的主要原因可能是:

  1. 代码执行时间:如果您有多个循环,请考虑为它们提供更少的数据以进行提取/提取。
  2. 并发连接:我也有这个问题,一个人可以打开3-4个浏览器标签/窗口,所以尝试每个用户 NB 建立 1 个并发连接。您可以使用 session

如果我有什么想法,我会尝试编辑这个答案,您可以查看下面的链接,了解 Nodejs 上的服务器压力测试。

Link is here

希望对您有所帮助。

关于node.js - 如何调试 Node + Socket.io CPU 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16033834/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com