【发布时间】:2013-11-22 11:59:34
【问题描述】:
我已经在 VPS 上设置了一个带有 socket.io 的 Node.JS 服务器,我每 10 秒向所有人广播连接的客户端数量。这通常工作正常,但通常无法建立连接并且我收到此错误(我更改了一点 IP):
GET http://166.0.0.55:8177/socket.io/1/?t=1385120872574
重新加载站点后,通常可以建立连接,虽然我不知道为什么会首先发生连接失败,也不知道如何调试socket.io代码。有时我无法连接到服务器,我必须重新启动服务器。
其他信息:
- 我的主站点运行在与 Node.js 服务器不同的服务器上(使用带有 CakePHP 的 LAMP 环境)。
- 我用forever来运行服务器
- 我有很多连接的客户端(大约 1000 个)
- 我的 VPS 有 512 MB 内存,CPU 从未高于 25%
【问题讨论】:
-
您的节点进程 CPU 是否达到 100%? (只是节点 CPU 不是整个服务器)因为 Node.js 是单线程。
-
Mh.. 不知道如何检查这个,我真的是服务器端的新手:/
-
在 linux shell 中尝试“top”命令并找到 node.js 进程。
-
啊,非常感谢!目前它为 10%,尽管它跃升至 20%,然后又返回。现在服务没有问题(我得到了连接的客户端),但如果脚本再次开始失败,我会看看 TOP :)
-
连接当前每秒钟工作一次(如果我重新加载,它可以工作,再次重新加载,它不会)。节点进程使用大约 15% 的 CPU 和 13% 的 MEM。还有 2 个其他进程使用的 CPU 和 MEM 均低于 1%。