白洞版 · 性能压测报告
白洞版压测报告
Section titled “白洞版压测报告”工具:阿里云 PTS。分别做单机与集群负载均衡。提交订单会锁库存、写 MySQL,并由 Canal/MQ 同步 ES、Mongo。压测过程无 Error,JVM 正常。购买机器更应注重 CPU 核心数,内存占用全程不明显升高。
1. 普通订单 · 单机
Section titled “1. 普通订单 · 单机”应用 8 核 32G × 1,RDS 8 核 16G。

| 指标 | 结果 |
|---|---|
| TPS 平均 / 峰值 | 440 / 502 |
| 平均 RT | 910 ms |
| 成功率 | 100% |
| 异常 | 0 |
| 总请求 | 5.2 万 |
| RDS CPU / 内存 | 约 18% / 20% |
链路:提交订单(扣库存 + 写 MySQL)→ Canal 发 MQ → 搜索服务同步 ES(列表)与 Mongo(统计)。Canal、RocketMQ、ES、Mongo 会占用单机性能,从而限制订单 TPS。
2. 普通订单 · 集群(只扩订单服务)
Section titled “2. 普通订单 · 集群(只扩订单服务)”中间件 8 核 16G × 1;接口机 8 核 32G;订单服务 4 核 4G × N;订单库与非订单库分 RDS;Redis 1GB。其它服务维持在不影响订单即可。
| 订单服务台数 | TPS 平均/峰值 | 总请求 | 成功率 |
|---|---|---|---|
| 1 | 682 / 769 | 8.1 万 | 100% |
| 2 | 1311 / 1502 | 15.4 万 | 100% |
| 4 | 2820 / 3022 | 33.5 万 | 100% |
热路径服务:订单、商品(库存)、鉴权、搜索、用户。中间件:MySQL、Canal、RocketMQ、ES、Mongo。
一台 RDS MySQL 对应 4 个订单服务(4 核 4G)时达到上限,继续扩容需增加 MySQL(或 PolarDB)。分库可通过配置扩容,旧数据需按分片规则迁移。
3. 秒杀订单 · 集群
Section titled “3. 秒杀订单 · 集群”秒杀服务 4 核 4G × N;Redis 1–8 GB;RDS 8 核 16G。数据先写 Redis(AOF),异步落 MySQL。
| 秒杀服务台数 | TPS 平均/峰值 | 总请求 | 成功率 |
|---|---|---|---|
| 1 | 2537 / 2790 | 30.2 万 | 100% |
| 2 | 5079 / 5263 | 60.4 万 | 100% |
| 4 | 9892 / 10202 | 117.7 万 | 100% |
| 6 | 14389 / 14895 | 165.4 万 | 100% |
| 8 | 18608 / 19436 | 221.4 万 | 100% |
8 台后 Redis 成为瓶颈。再加一台 Redis 后两台 CPU 约 50%–60%。网关与鉴权会影响秒杀;商品服务异步写库存记录,不要与秒杀同机。TPS 约 1.8 万时优先加 Redis 节点。
4. 商品详情
Section titled “4. 商品详情”单机(8 核 32G):TPS 2057 / 2321,平均 RT 242 ms,总请求 61.5 万,成功率 100%。首次查 MySQL,后续走 Redis 缓存。
集群(product 4 核 4G × N):
| 服务数量 | TPS 平均/峰值 | 总请求 |
|---|---|---|
| 1 | 2580 / 2748 | 61.6 万 |
| 2 | 4385 / 4644 | 104.8 万 |
| 4 | 8490 / 8976 | 199.5 万 |
Redis 打满后再扩 Redis。
5. 商品搜索
Section titled “5. 商品搜索”单机 ES 单节点时,CPU 主要在 search 服务与 ES。关键词分词比首页列表慢;附近门店还要算经纬度。
集群下 search 服务水平扩展近似线性;ES 数据节点与 search 数量建议约 3:2。搜索对 CPU 敏感、对内存要求不高。