3,000推荐稳态印刷量(码/分钟)
3,300建议上限(码/分钟,≈55 码/秒)
1.5 万+本地网关爆发取码能力(RPS 量级)
测试方法
客户端使用单条 HTTP keep-alive 连接匀速调用 GET /api/code/get,同时从 /api/health 采样队列水位、云端累计补给(pulled)与累计印刷(printed)。
测试轮次
| 轮次 | 速率(码/s) | 时长 | claim 配置 | 结果 ok / valid | 队列变化 | 补给速率(码/s) | P99(ms) |
|---|---|---|---|---|---|---|---|
| 1* | 无限速爆发 | 300s | 500 / 2s | 4,660,520 ok | 36000→0(60s) | 250(60s 后) | 3.0 |
| 2 | 240 | 300s | 500 / 2s | 72,000 ok | 36000→0 | ~65 | 8.3 |
| 3 | 100 | 300s | 500 / 2s | 30,000 valid | 36499→21999 | ~52 | 11.1 |
| 4 | 200 | 300s | 2000 / 1s | 60,000 ok / 54,499 valid | 36499→0 | ~60 | 9.3 |
| 5 | 50 | 300s | 2000 / 1s | 15,000 valid | 17500→18500(稳定) | ~53 | 10.2 |
| 6 | 60 | 300s | 2000 / 1s | 18,000 valid | 18500→14000(缓慢下降) | ~45 | 11.5 |
结论 1:稳态最大一分钟印刷量
推荐稳态值:3,000 码/分钟(50 码/秒),上限不超过 3,300 码/分钟(55 码/秒)。
- 50/s 匀速 300s:队列 17500→18500 持平,15,000 码全程有效,无空码,可长期持续。
- 60/s 匀速 300s:队列 18500→14000 持续下降(净 −4500),消耗长期大于补给,不可持续。
- 云端补给实测 45~65/s(均值约 53/s ≈ 3,200 码/分钟),是稳态的真正上限。本地网关本身可承载 1.5 万+ RPS(轮 1),不是瓶颈。
云端按固定节奏向本机补给。超过补给速率的取码会把缓冲池耗尽,之后服务仍可能返回 HTTP 200 但无有效码(轮 4 实测 5,501 个空响应),印刷机将打出空码 / 坏码——生产中必须限速在稳态值以内并监控队列水位。
结论 2:稳态印刷量的推荐配置
| 配置项 | 当前值 | 建议值 | 说明 |
|---|---|---|---|
| produce_speed_per_min | 12000 | 3000 | 客户端 / 产线节流应设为稳态印刷量 |
| low_water | 36000 | 10000 | 3,000/分钟下约 3 分钟缓冲;36000 对应约 12 分钟缓冲,内存收益有限 |
| claim_count / claim_interval_sec | 500 / 2s | 500 / 2s(默认即可) | 调大至 2000/1s 对稳态补给无提升 |
| report_batch_size / report_interval_sec | 500 / 2s | 保持默认 | 出站短暂积压约 1,500,上报能跟上 |
claim_count 从 500/2s 调到 2000/1s,稳态补给仍在 45~60/s 区间。稳态上限由云端决定,本地配置无法突破。