提示:AI 结果必须带引用;若证据不足会提示“未找到可靠证据”。
云数据库代理网关容量测试报告(2026-02-15)
测试时间:2026-02-15
测试对象:/Users/Zhuanz/work-space/cloud-data-proxy
代码版本:e4a89b0
测试环境:go1.24.5 darwin/amd64,CPU 标识VirtualApple @ 2.50GHz
1. 结论摘要(先看)
基于当前代码与本次测试口径,单实例协议数据面(PoC)当前可满足的吞吐范围为:
- 最低值(本次样本):约 23,339 QPS(
-cpu 1,42846 ns/op)。 - 最高值(本次样本):约 52,868 QPS(
-cpu 4,18915 ns/op)。
计算公式:QPS = 1e9 / ns_per_op。
注意:该区间来自 协议层端到端基准 + mock executor,不含真实云数据库网络与磁盘 IO。生产真实可用吞吐通常低于该值。
2. 测试目标
- 验证当前版本的功能正确性(测试/静态检查)。
- 量化协议面单实例吞吐上下界(最低/最高)。
- 给出可复核的执行命令和结果,作为容量评估基线。
3. 测试范围与口径
3.1 覆盖范围
- 全量单元测试:
go test ./... - 静态检查:
go vet ./... - 协议面 benchmark:
BenchmarkProtocolSelectRoundTripBenchmarkToMySQLQueryResult
3.2 不在本报告范围
- 未覆盖真实云数据库 IO(当前 benchmark 使用 mock executor)。
- 未覆盖多机分布式压测总吞吐(100 万 QPS 需压测集群执行)。
- 未覆盖长时间 72h 稳定性实压(另有专项计划)。
4. 执行命令
cd /Users/Zhuanz/work-space/cloud-data-proxy
go test ./...
go vet ./...
go test ./internal/protocol/mysqlproxy \
-run ^$ \
-bench 'BenchmarkProtocolSelectRoundTrip|BenchmarkToMySQLQueryResult' \
-benchmem \
-benchtime=8s \
-cpu 1,2,4,8,10
原始输出已保存:/tmp/cdp_bench_20260215.txt
5. 测试结果
5.1 功能与质量门禁
go test ./...:通过。go vet ./...:通过。
5.2 协议端到端吞吐(核心)
| 并发档位(-cpu) | ns/op | 折算 QPS(约) | allocs/op |
|---|---|---|---|
| 1 | 42,846 | 23,339 | 41 |
| 2 | 28,550 | 35,026 | 41 |
| 4 | 18,915 | 52,868 | 41 |
| 8 | 19,988 | 50,030 | 41 |
| 10 | 20,641 | 48,447 | 41 |
5.3 结果集构建开销(辅助)
| 并发档位(-cpu) | ns/op | allocs/op | B/op |
|---|---|---|---|
| 1 | 61,008 | 1606 | 44,505 |
| 2 | 48,285 | 1606 | 44,506 |
| 4 | 46,742 | 1606 | 44,509 |
| 8 | 45,037 | 1606 | 44,517 |
| 10 | 45,057 | 1606 | 44,520 |
6. “最低/最高数据”说明
你问的“目前这套最低和最高数据”,按当前最关键的吞吐指标(协议面 QPS)解释如下:
- 最低可满足:约 2.33 万 QPS/实例(本机样本最保守档位)。
- 最高可达到:约 5.29 万 QPS/实例(本机样本峰值档位)。
如果按更保守的工程口径(预留波动余量),建议把当前单实例可用区间先按 2.0 万 ~ 4.5 万 QPS 估算。
7. 生产解释与风险
- 当前结果是 PoC 链路能力上限参考,不代表真实生产吞吐。
- 接入真实 MySQL 后,网络 RTT、锁等待、慢 SQL 会拉低最终 QPS。
- 若目标是 100 万 QPS,必须采用多实例 + 分布式压测集群 + 真实数据库压测闭环。
8. 下一步建议(用于拿到生产真实上下界)
- 使用
scripts/qps_1m_protocol_sysbench.sh在目标环境执行分线程压测。 - 增加真实数据库场景(只读、读写混合、热点写)并输出 P95/P99/错误率。
- 做 30 分钟稳态压测和故障注入(MySQL 抖动/重连)后再更新“最低/最高”生产值。
9. 结论
当前版本在本地单实例基准下,协议面 QPS 的可测区间为 23,339 ~ 52,868 QPS。
该结果可作为“研发基线”,但不能直接当作“生产承诺值”;生产上限仍需真实链路压测确认。