NInfer 压测报告 · 4 路并发 60K 上下文

RTX 4090 D 48GB · Qwen3.8-27B · MTP3 · FP8 KV · ninfer-4090:sm89 v0.6.1 · 2.9:18080 · 2026-09-22
成功率
4 / 4
无错误 · 无超时 · 无 OOM
总输入
237,924
tokens · 4 × 59,481
端到端墙钟
155.3s
最慢一路的完成时间
Prefill 吞吐
1,565
tok/s · 串行执行
MTP 接受率
63.8%
深度下无退化
显存占用
96.5%
47,438 / 49,140 MiB

每路请求明细

路Prompt输出排队Prefill TTFT总耗时DecodeMTP
159,4813000.0 s 36.2 s36.2 s100.4 s94.1 t/s63.8%
259,48130036.2 s 38.1 s74.3 s139.3 s80.7 t/s62.9%
459,48130074.3 s 38.8 s113.1 s153.6 s81.1 t/s63.8%
359,481300113.1 s 38.9 s152.0 s155.2 s93.6 t/s64.8%
合计237,9241,200— 152.0 s—155.3 s—63.8%
关键发现:排队时间严格等于前序各路的 prefill 累加(0 → 36.2 → 74.3 → 113.1 s), 证明 prefill 完全串行。最后一路要等 152 秒才见到第一个 token。

时间线分解

0s 40s 80s 120s 155s 路 1 路 2 路 4 路 3 prefill 36.2s decode · 总 100.4s 排队 36.2s prefill 38.1s 排队 74.3s prefill 38.8s 排队 113.1s prefill 38.9s 排队(等前序 prefill) Prefill 串行 Decode

服务器资源消耗

资源基线峰值占用率评估
GPU 显存47,438 MiB47,438 MiB 96.5%硬顶
GPU 利用率0%100% 86/99 采样 ≥95%算力打满
GPU 功耗67 W428.8 W 425 W 上限触顶
GPU 温度41 °C78 °C 安全正常
SM 时钟2,520 MHz2,700 MHz 满频正常
主机内存14 GB14 GB 零增长充裕
Swap0 GB0 GB 未触发充裕
系统 load10.270.94 极低CPU 闲置
Host KV spill—无 未换页健康
瓶颈定位:全部压力集中在 GPU 计算单元;CPU、主机内存、PCIe、swap 全程闲置。

瓶颈与极限

① PREFILL 完全串行 · 最大瓶颈
4 路各 60K,prefill 逐个执行,累计 152 s。
末路 TTFT 152 s,实时交互不可接受。
与参考帖「多路 Cold Prefill 基本串行」一致。
② 有效吞吐被排队吃光
名义聚合 ≈ 350 tok/s,
实际端到端 7.73 tok/s (1,200 tok / 155.3 s)。
③ 显存是硬顶
开 4 路后启动余量仅 1.38 GB(2 路时为 13.6 GB)。
KV 容量 853,056 tokens,本次用 27.9% 安全;
4 路 × 满 262K = 1,048,576 会超限,将拒绝或截断。
④ MTP 深上下文不退化
60K 深度接受率 63.8%,
与浅层 59–65% 持平。

与参考帖数据对比

指标参考帖本次实测结论
单路 Decode(代码)150 tok/s112.7 tok/s 偏低(参数不同)
Prefill 深度1,500 tok/s @128K1,565 tok/s @60K 吻合
多路 Prefill基本串行确认串行 吻合

调优建议

优先级建议理由
高agent 会话固定复用,避免重复 cold prefill 串行 prefill 是唯一真瓶颈,重算代价 36 s/次
高单会话 context 压到 64–128K 60K 已够用,可给 4 路留足 KV 余量
中启用 --auto-long-anchors + 前缀共享 减少长会话重算
低加大 --prefill-chunk —— 无效 瓶颈是算力不是调度
原始数据:stress_monitor.csv(99 条 1s 采样)· stress4_result.json · 复现脚本 stress4.py