Dan Luu 写系统问题时,习惯先测量、再对照、最后才下结论。把「Sampling v. tracing」放到智能体、评测和线上系统里,真正要问的是:默认做法会不会系统性失败。下面用中文整理成可执行的工程笔记,去掉原站导航和无关链接。
Now what?
Perf is probably the most widely used general purpose performance debugging tool on Linux. There are multiple contenders for the #2 spot, and, like perf, they're sampling profilers. Sampling profilers are great. They tend to be easy-to-use and low-overhead compared to most alternatives. However, there are large classes of performance problems sampling profilers can't debug effectively, and those problems are becoming more important.
For example, consider a Google search query. Below, we have a diagram of how a query is carried out. Each of the black boxes is a rack of machines and each line shows a remote procedure call (RPC) from one machine to another.
值得单独记下的观察
- Why does perf sample so infrequently?
- How does SHIM get around the limitations of perf?
- Why are sampling profilers dominant?
- Cobble together what you need out of existing tools
落地时建议先做的 5 件事
- 用自己的真实负载测,而不是只用公开榜或厂商数字。
- 把评测设计成能抓到失败模式:平均分好看但尾部崩溃,仍然算失败。
- 智能体默认不会好好用测试;要写进流程,而不是写在口头规范里。
- 性能和正确性都要有基线,改模型或改语言前后必须能对比。
- 结论写成可回滚的决策:哪一版配置、哪一版评测集、谁签字。
和智能体产品怎么接
龙虾PRO做 OpenClaw 落地时,同样吃「先测量再扩面」这条纪律:技能、数字员工和网关都要有可复现评测,而不是只看一次演示通过。
本文侧重全链路风控方法论。落地时请用自身业务单据做回放验证,不要把示例阈值直接当生产策略。 相关:风控体检 · 方案资源
常见问题 FAQ
采样分析器为什么不能有效调试某些性能问题?
根据文章,采样分析器如perf易用且低开销,但有些性能问题无法有效调试,例如复杂RPC流程中的问题。采样频率低可能遗漏关键细节,这些问题在智能体系统中变得更重要。
perf的采样频率为什么这么低?
文章指出perf作为Linux通用工具,采样频率低是为了减少开销,但这限制了其调试能力。具体未深入,但强调了采样分析器的固有局限性。
如何绕过perf的性能分析限制?
文章建议用现有工具组合来满足需求,例如结合追踪(tracing)方法补充采样分析器的不足。这意味着在调试时,可以混合使用多种工具以覆盖更广的问题范围。
在性能测试中,如何设计评测来抓取失败模式?
文章建议使用真实负载测试,而不是依赖公开数据。评测要能抓取失败模式,例如平均分好看但尾部崩溃仍算失败,并确保测试写入流程,而不仅是口头规范。
为什么在改模型或改语言前后需要建立性能和正确性基线?
文章强调基线用于对比变化前后,确保不会引入回归。这支持可回滚的决策,比如记录配置版本、评测集和签字人,以便在智能体系统中保持可靠性。
在智能体产品中,如何确保评测的可复现性?
文章提到龙虾PRO做OpenClaw落地时,遵循“先测量再扩面”纪律,技能、数字员工和网关都要有可复现评测。这避免了只看一次演示通过的陷阱,确保长期稳定。