基础篇

F38|看懂生产运行:Trace、队列、成本和回滚

基础篇约 2.7 千字1 组分步图解

从具体对象与小例子开始,理解计算过程与适用条件。

本章目录
动态图解 · F38

Trace要告诉你因果,不只是时间戳

为何优化一个最显眼的步骤,整体却没变快?

执行轨迹像工程里的时间账,但更重要的是依赖关系。串行阶段会相加,并行阶段往往取关键路径;只有知道下一步在等谁,才能知道哪里值得优化。还要把排队、推理、工具、验证和重试分开,不能全算成模型慢。

Trace一条任务中各步骤及关联关系的记录。
墙钟时间从任务开始到结束真正经过多久。
关键路径决定完成时间的依赖链。
吞吐单位时间完成多少任务。

输入与适用条件:固定教学秒数,无真实产品耗时数据。第4帧只改变工具A时长,其他条件保持不变。

1 / 5 · 先看一条完整任务

第1步,共5步

窄屏可左右滑动图形,或点击“放大图形”。文字解释紧随图后。

Trace要告诉你因果,不只是时间戳:先看一条完整任务排队2s模型调用13s并行工具A3s并行工具B8s模型调用22s核验1s016秒

构造的任务从0到16秒:排队2秒、第一次模型3秒、并行工具A3秒/B8秒、第二次模型2秒、核验1秒。

基准墙钟16秒;工具工作量11秒

默认静止。用“下一步”看完解释再继续;播放到最后一步自动停止。键盘聚焦播放器后,可用左右键逐步查看、空格播放/暂停。图中颜色辅助区分,含义同时用文字注明。

为什么需要

把优化投入到确实支配成本或完成时间的环节。

怎样实现

按依赖关系画时间线,再用同负载实测对照。

可能的代价与误解

只看平均值会隐藏长尾;把并行跨度相加会错误夸大总耗时。

如何判断是否做对

按时间戳与依赖重算16秒,检查是否把等待和重试遗漏。

一次任务到底慢在哪里

总时间可能包括排队、上下文检索、模型输入处理、生成、工具等待、重试和验证。只记录“总计60秒”不能说明该换模型、改检索还是减少工具轮次。

Trace(调用轨迹)把同一任务的相关步骤关联;Span记录一个具体操作的开始、结束与属性;Log日志记录事件细节;Metric指标汇总大量运行的统计值。三种观察互补。

用一条教学轨迹分账

排队2秒
检索1秒
模型调用5秒
工具测试8秒
模型总结2秒
总计18秒(这个例子假定顺序执行)

若工具测试是最大项,仅压缩最后总结的Token不会把总时长降低一半。若步骤并行,总时间要看关键路径,不能把每个span耗时盲目相加。

TTFT、TPOT与端到端延迟

TTFT是从请求开始到第一个输出Token到达的时间;TPOT描述后续每Token生成时间的某种统计;端到端延迟是用户任务整体完成时间。

首字出来很快,后续工具执行很慢,用户仍会觉得任务慢。输出很多无用文字可以让界面显得活跃,却不改善完成时间。

吞吐与延迟不是一对同义词

吞吐量throughput是一段时间完成多少工作;延迟latency是一项工作等待多久。批量处理可能提高吞吐,却增加部分请求排队时间。

当请求到达速度逼近系统可处理速度,排队可能迅速变长。平均值还会掩盖尾部慢请求;p95表示某统计窗口中约95%的观测不超过该值,不是最大值。

在稳定系统和相应条件下,Little定律常写L=λW:平均在系统中的任务数=平均到达率×平均停留时间。它帮助核对队列与延迟,但不是无条件适用于任何瞬时波动的精确预测。

成本应算整个任务

模型输入、输出、缓存命中、工具、失败重试和人工介入都可能有成本。不要只比较“每百万Token价格”,忽略便宜模型导致的多轮返工。

也不要为了降低Token把关键证据删掉。更好的目标是在满足质量与风险要求下,减少无效读取、重复分析、无进展调用和不必要审查。

SLI、SLO是什么

SLI是服务水平指标,例如规定时间内正确完成的请求比例;SLO是该指标目标,例如某业务对可靠性和时间的要求。目标应连接用户结果,而不是只保证API返回200。

错误预算描述在可靠性目标允许范围内可承受的失败量,用于平衡变更速度和稳定性。这是管理思路,不要求个人实验也建立复杂运营平台。

灰度、回滚和版本组合

灰度发布canary先让小范围流量使用新版本,观察后再扩大;回滚退回已知较稳定的配置。Agent系统版本可能包含模型、Prompt、工具、Skill、索引、权限与记忆规则,不能只记模型名。

若新版本已写入错误记忆或修改外部系统,仅换回旧模型未必消除影响。需要核验派生数据和副作用,必要时单独修复。

追踪也要保护隐私:默认不要保存全部敏感Prompt和凭据。记录足够定位问题的身份、版本和脱敏证据,比无条件日志越多越好更合理。

运行示例 · F38

两条工具并行时,为什么总耗时不能直接相加

输入与条件。读取配置需要3秒,读取测试需要5秒,两者可以同时开始;之后模型整合2秒。时间是构造的。

步骤与对象内部动作中间结果 / 新状态
1t=0两个只读工具同时启动两个分支都从0计时。
2t=3配置先完成测试仍在运行。
3t=5测试完成汇合点现在才具备两份证据。
4t=5到7模型整合墙钟总耗时7秒。
5比较两本账工具耗时和=3+5=8秒;模型再2秒工作量和10秒,但关键路径是max(3,5)+2=7秒。

把过程连起来。Trace要保留父子关系与时间区间,才能区分“做了多少工作”和“用户等了多久”。

边界与反例。真实并发会受资源争用、限流和通信影响,不能拿本例推导固定加速比。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

课后自检

自检 1

模型只占总耗时20%,换快一倍模型能让总时间快一倍吗?

查看参考答案收起参考答案
在其他条件不变且顺序执行的简化设定下不能,总时间只减少原来的约10%。
自检 2

回滚模型版本后,错误长期记忆会自动消失吗?

查看参考答案收起参考答案
不会。记忆、索引和已发生副作用是独立状态,需要核验并处理。

机制依据:[SRE][SLO][OTEL][LATENCY]。本节数值与情景除另注外均为原创教学示例;来源不代替中文讲解。

记录保存在本机浏览器。

输入关键词即可检索。

↑ ↓ 选择 Enter 打开Esc 关闭 · 仅本地搜索

阅读设置

阅读设置仅保存在本机浏览器,不上传任何数据。