【发布时间】:2015-06-29 23:41:40
【问题描述】:
我正在编写 socket.io-client node.js 机器人应用程序,以测试我的基于 socket.io 的服务器应用程序的性能也在节点下运行。
服务器通常运行 ubuntu linux,但我也在本地开发机器上安装和配置了相同的服务器应用程序(node.js、nginx、socket.io)。
如果我启动我的机器人“脚本”并启动 200 个机器人来创建与服务器的单独连接,那么如果我对真正的服务器(即 linux 服务器)执行此操作,我将毫无问题。
但是,如果我连接到本地基于 os x 的“服务器”,我就无法真正获得超过 120 个连接。
我得到了断开连接、陈旧的套接字和断开/重新连接的无限循环,在 socket.io 的标准设置下,完成的时间越来越长(延迟重新连接尝试)。
在这样的测试中,我的本地开发机器的负载几乎为 0%,因此它与内存或处理器无关。
我已经在第二台本地机器上尝试了相同的机器人脚本,以确保问题与在与服务器相同的机器上运行的机器人无关。但我遇到了同样的问题。
只要我将机器人脚本指向真实服务器,我就没有任何问题。
当我处于问题发生的范围内时,即使用 120 多个客户端进行推送时,我尝试使用浏览器(真实的用户场景)访问我的本地开发服务器并多次刷新。有时我会得到一个“内部服务器 500”。
让我觉得这可能不是与 nginx 相关的 socket.io?或常规 os x(非服务器)机器上的其他一些基本套接字限制?
【问题讨论】:
标签: node.js nginx socket.io osx-yosemite