Appearance
Day 17: 20→50→100K 逐级爬升 (20K→50K→100K Scaling)
所属阶段:阶段 6 — 百万长连接
今日目标
在 FD/TCP/NUMA 三轮优化后,开始真正的连接数爬升——20K → 50K → 100K,每级停留 5 分钟。
前置状态
- FD = 1048576
- TCP 端口 = 1024-65535
- NUMA 双节点拆分
- RSS 8 队列 + IRQ 绑定
今日不再调参,只做观测
这是关键转折点:不再有新的参数要调了,现在是验证阶段——之前三个阶段的优化是否足以支撑更高连接数。
爬升实验
bash
# 服务端(双 NUMA 拆分)
bash scripts/numa-split-server.sh --port 9090 --workers-per-node 4 &
# 阶段 1: 20K
./echo-client --conn 20000 --mode long --duration 300 &
# 观测 5 分钟
# 阶段 2: 50K(保持 20K + 新增 30K)
./echo-client --conn 30000 --mode long --duration 300 &
# 阶段 3: 100K(保持 50K + 新增 50K)
./echo-client --conn 50000 --mode long --duration 300 &监控布局(四终端)
| 终端 | 命令 | 观测内容 |
|---|---|---|
| 1 | watch -n 1 'ss -s' | 连接数变化 |
| 2 | watch -n 1 'free -h' | 内存变化 |
| 3 | sar -n DEV 1 | 网络 PPS/带宽 |
| 4 | mpstat -P ALL 1 | CPU 分布 |
每级停留时记录
| 连接数 | 内存 | PPS | FD | 建连耗时 |
|---|---|---|---|---|
| 20K | 待记录 | 待记录 | 待记录 | 待记录 |
| 50K | 待记录 | 待记录 | 待记录 | 待记录 |
| 100K | 待记录 | 待记录 | 待记录 | 待记录 |
会注意到
- 20K→50K:基本无压力
- 50K→100K:内存增长开始显著(每连接约 4-8KB)
- 建连耗时线性增长(数百万个 FD 的分配需要时间)
一句话总结:三阶段优化后的第一次大考——100K 连接稳定运行,证明 FD/TCP/NUMA 优化有效。但这只是"百米热身",百万才是目标。