System Performance Data
各模块的性能
模块 | 性能基准值(2025) |
---|---|
Load Balancer | 软件(几十万连接)、硬件(百万连接)、L4/L7混合 |
网络带宽 | 单机10~100 Gbps;延迟 < 1ms |
普通服务器 | 16~ 64 vCPU,64~ 512 GB RAM,百万连接需特殊优化 |
HTTP Polling | 延迟高,性能差,开销大 |
Long Polling | 延迟低些,但连接阻塞,不可扩展 |
WebSocket | 单机支持10~100万连接(需epoll、轻线程等) |
Redis (NoSQL) | 百万 QPS,in-memory,适合 KV usecase |
Cassandra | 十万 TPS,PB 级存储,适合高并发写 |
MySQL | 数千 TPS,1~10 TB/实例,扩展需拆分 |
Kafka | 数百万 msg/s,GB/s 级吞吐,PB 数据量,Pull 模型 |
mysql读写qps分析
阈值判断 | MySQL 响应策略 |
---|---|
写 QPS > 5,000 | 高危,需分库、异步写、削峰 |
读 QPS > 30,000 | 高危,需读写分离、缓存 |
分表后依然撑不住 | 必须引入分库或缓存/异步架构 |
一台机器扛不住 | 用集群 + 路由层(Proxy / Sharding) |
支撑十亿连接的“分层连接体系
层级 | 模块 | 每层承载能力 | 选型说明 |
---|---|---|---|
入口层 | CDN + DNS + NLB | 每个 NLB ≈ 百万连接 | 路由层扩容,部署数千 NLB 实例进行连接分担 |
连接层 | WebSocket Gateway 集群 | 单机百万连接 | 用 epoll 异步模型,如 Netty、Erlang、Go 实现 |
逻辑层 | 服务处理逻辑 | 无状态 | 可以用 Lambda/EC2/容器处理消息、状态 |
状态存储 | Redis Cluster / 自建状态同步层 | 横向扩展 | 存储连接状态、在线用户、心跳等 |
清单
- load balancer的性能,实现方式,连接数量
- 数据中心的网络吞吐量
- 数据中心普通机器的性能
- 通常有多少cpu,多少内存,最大可以做到多少
- 有多少
- connection
- http polling
- long polling
- 普通机器concurrent connection数据
- WhatsApp achieve 2 million connections per server https://stackoverflow.com/questions/22090229/how-did-whatsapp-achieve-2-million-connections-per-server
- 数据库
- NoSQL的性能:读写性能,最大容量
- NoSQL是否可以称作KV storage
- MySQL的性能:读写性能,最大容量,单表的大小,单表最大行数等
- 消息队列
- Kafka的性能:最大容量,吞吐量
- Kafka是pull还是push