【发布时间】:2016-11-13 14:59:42
【问题描述】:
我正在自己构建一个应用程序,我希望它能够处理 10K 并发连接(通过本地机器和 locust 脚本测试)
托管在两个带有 nginx 反向代理和 nodeJS 应用服务器的 ubuntu 14.04 服务器上。
目前,在遇到 500 个连接丢失错误的高峰之前,我的并发用户数约为 3.3K。
我通过在两个单独的端口上运行应用程序并使用上游指令在端口上传播请求来实现跨端口连接的负载平衡。
但是,这并没有显示出我的数字有任何明显的改善。
问题:
我知道这里缺少很多信息(我想象每个用户需要多少带宽)。我该如何收集正确的信息来做出决定?
我可以考虑/学习/实施哪些其他选项来最大程度地增加可能的并发用户?
非常感谢!
【问题讨论】:
-
你确定掉线问题是来自nginx还是node?您可能希望从根本上排除节点应用程序正在执行的任何复杂操作,以查看问题是否消失,这表明问题源于您的某些业务逻辑。您可能还想跟踪内存、磁盘、cpu 使用方面的性能。
-
如何找出连接断开的来源?
-
您需要像排除任何棘手的错误一样尝试排除问题。试着把事情排除在等式之外,首先是大事情。如果您可以从等式中删除节点(例如,尝试同时从 nginx 提供 10K 静态文件,因此甚至不使用节点)。如果可行,那么问题可能出在节点而不是 nginx 上。如果它仍然断开连接,则可能是 nginx 或硬件问题,您可以从那里继续。
标签: node.js nginx concurrency ubuntu-14.04