保持1,000,000个websocket打开需要占用多少系统资源?

保持1,000,000个websocket打开需要占用多少系统资源?

已更新答案

Short answer:是的,但它很贵。

Long answer

这个问题并不是WebSockets独有的,因为WebSockets基本上是长寿的TCP套接字,具有类似HTTP样的握手和最小的消息成帧。

真正的问题是:单个服务器能否处理1,000,000个并发套接字连接?这将消耗哪些服务器资源?答案很复杂,有几个因素,但是对于一个适当规模的系统(大量的CPU、RAM和快速网络)以及经过调优的服务器系统和优化的服务器软件,1,000,000个并发活动套接字连接是可能的。

连接的数量不是主要问题(这主要是内核调优和足够内存的问题),而是处理和向/从每个连接发送/接收数据的问题。如果传入的连接分散在很长一段时间内,并且它们大多是空闲的或不频繁地发送小块的静态数据,那么您可能会获得比1,000,000个并发连接高得多的连接。然而,即使在这些情况下(大多数是空闲的慢连接),您仍然会遇到网络、服务器系统和服务器库的问题,这些网络、服务器系统和服务器库没有配置和设计来处理大量连接。

请参阅Alessandro Alinone关于500,000个连接的近似资源使用情况的回答。

以下是一些较旧但仍然适用的资源,可供阅读有关如何配置服务器和编写服务器软件以支持大量连接的信息:

What is the theoretical maximum number of open TCP connections that a modern Linux box can havehttp://www.kegel.com/c10k.html

尊享推荐

365怎么查看投注记录 [原创]餐饮门店自制熟食,能网上卖给外地顾客吗?
365bet安卓中文客户端 窄的解释

窄的解释

📅 06-29 👑 181
365怎么查看投注记录 微信为什么会被冻结 微信为会被冻结原因分析【详解】
365bet安卓中文客户端 去年买的笔记本电脑现在能卖多少钱?如何评估其价值?