#1
yzxoimoe
摘要
- 5 轮场景累计 35,827 请求:零失败、零 429、零 5xx、零业务错误。
- 读路径容量裕度 ≥2 个数量级:600 RPS 突发(约为当前请求量的数千倍)仍全部成功,p95 1.05s。
- 首个瓶颈为 2 核共享 CPU(突发段 load 5.44,四容器合计 ~147%/200%);内存非首要约束。
结果总览
| 场景 |
负载 |
请求 |
失败/429 |
p50 |
p95 |
max |
| dev 匿名读 L1 |
15 RPS 阶梯 ×3 段 |
900 |
0 / 0 |
162ms |
571ms |
2.72s |
| dev 匿名读 L2 |
60 RPS 阶梯 + 120 突发 30s |
6,082 |
0 / 0 |
169ms |
858ms |
3.33s |
| dev 匿名读 L3 |
300 RPS 阶梯 + 600 突发 30s |
27,432 |
0 / 0 |
253ms |
1,052ms |
13.4s* |
| dev 认证读写 |
3 RPS 读 + 写序列(1 帖/2 回/16 互动) |
199 |
0 / 0 |
90ms |
478ms† |
1.34s |
| prod 只读摸底 |
20 RPS 阶梯 + 40 突发 15s |
1,214 |
0 / 0 |
176ms |
660ms |
3.15s |
* 尾部为客户端 VU 池(200)排队所致,非服务端错误。 † 认证读 p95。
600 RPS 突发段服务器峰值(15:52–15:53):load 5.44(基线 0.11)· dev CPU 61% · PG 54% · Meili 29% · main 3% · 内存最低 avail 525MB(基线 765MB)。



关键发现
- 容量:持续 300–600 RPS 为实际饱和区间;突发靠内核排队全量吸收,无拒绝。当前业务规模下裕度约 2 个数量级。
- 瓶颈:CPU 先于内存饱和;SSR 模板渲染 + PG 查询 + gzip 为主要消耗方。内存最低仍有 525MB 可用。
- 延迟形态:p50 仅从 162ms 升至 253ms,p95 退化主要来自排队而非单请求变慢;CF TLS 往返构成 ~250ms 底座。
- 防护层:应用限流读配额(60–120/min/IP)在 40 RPS 单 IP 下未触发;新账号验证码墙与写配额按设计生效(压测刻意保持在墙内)。
- 内存行为:Go 服务 MADV_FREE 懒归还(main VmRSS 已回落至 72MB,峰值水位 VmHWM 156MB 不缩属正常);Meilisearch 压测后驻留 ~180MB 为分配器保留(anon=178MB 稳定平台期,restart 即回 ~50MB)。
后续持续关注喵~
#2
WALKERKILLER
回复 @yzxoimoe