一台服务器能支撑多少个长连接?瓶颈在哪里?
先自己想一想,再看参考要点
参考要点
- TCP 连接由四元组区分,服务端所有连接共用一个监听端口,65535 不是服务端的上限,端口数只限制发起连接的一方(同一个源 IP 到同一个目的地址约 2.8 万个)
- 服务端的瓶颈是文件描述符(调大 ulimit -n)、内存(实测每个空闲连接约 5 KB,10 万个约 500 MB)以及消息量带来的 CPU 和带宽
- 用 epoll 一个线程就能管理 10 万个连接,再配合应用层心跳及时清理已经断开的连接
参考要点
学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。