在 32核64G内存 的机器上,Netty 能承载的连接数取决于 业务场景
、配置优化
和 操作系统调优
。
以下是详细分析和实测数据参考:
1. 理论估算(基于资源限制)
资源 | 影响 |
---|---|
内存 | 每个连接占用 10KB~1MB (取决于业务),64G 内存可支持 64K~6M 空闲连接。 |
CPU | 32 核可轻松处理 10W~50W 活跃连接(取决于业务逻辑复杂度)。 |
文件描述符 | 需调整 Linux 限制至百万级(ulimit -n 1000000 )。 |
网络带宽 | 1Gbps带宽约支持 5W~10W 活跃连接(每条连接 10KB/s)。 |
2. 实际场景参考值
业务场景 | 推荐连接数 | 资源消耗 | 关键优化点 |
---|---|---|---|
纯心跳保活 | 1M~2M | 内存:20~40GB,CPU:<10% 调优 | TCP 参数,禁用 Nagle 算法,使用内存池。 |
简单 Echo 服务 | 500K~1M | 内存:50GB+,CPU:30%~50% | 限制每个连接的缓冲区大小,启用 Epoll 边缘触发 。 |
游戏网关 | 100K~300K | 内存:40GB+,CPU:60%~80% | 业务逻辑异步化,协议压缩 (如 Protobuf),避免阻塞线程。 |
高频交易系统 50K~100K | 内存:30GB+,CPU:80%~100% | 使用零拷贝技术,绑定 CPU 亲和性,JVM 调优(G1/ZGC)。 |
3. 关键优化措施
(1) 操作系统调优
# 文件描述符限制(/etc/security/limits.conf)
* soft nofile 1000000
* hard nofile 1000000