2025-11-20 07:04:19
其实啊WebSocket并发量就像水桶装水一样看短板。比如普通服务器用单线程处理200个左右连接就稳当,超过500个就可能出现丢包或者延迟。但要是服务器配了多核CPU加负载均衡,可能能撑到800个。不过有个关键点要注意,每增加100个连接就要多占1%内存,要是内存只有2G的话,800个连接可能直接爆内存死机。
为啥是这个数呢?首先看带宽限制,1Gbps的网口每秒能处理3000次数据传输,但实际并发要除以3因为要留余量。比如测试数据显示,用200个连接时延迟是50ms,到500个就跳到200ms。还有心跳检测机制每分钟要发一次空包,1000个连接就相当于每分钟要处理16万次心跳包,这直接吃掉服务器CPU。之前有测试报告说,用Nginx做网关的集群,每个节点能稳定处理600-800个并发,但要是单台服务器配了16核CPU和16G内存,极限能到1200个。不过有个隐藏问题,当连接数超过服务器物理上限时,系统会自动触发OOM Killer杀进程,这时候连接数就像坐过山车一样突然掉下来。
本题链接: