Adrian Cockcroft在P99 CONF分享从内核级性能工程到AI场景的性能优化经验,涵盖P99指标本质与系统优化方法论。
在五年的历程中,P99 CONF 邀请过不少演讲者对这个同名指标进行了犀利的批判。在去年的会议上,Adrian Cockcroft 没有直说 P99 是垃圾……但他确实暗示了这个意思。
如果你不认识 Cockcroft,他曾在 Sun Microsystems、Netflix、eBay 和 Amazon 等巨头公司花费数十年时间构建、扩展和优化弹性高性能系统。我们几乎可以拿出整整一天的 P99 CONF 来讨论仅仅部分项目中学到的经验(Solaris 内核性能、多处理器优化、Netflix 从本地到云端的迁移、Chaos Monkey……)
好在 RedMonk 分析师 Rachel Stephens 证明了她是这个专注于让事物变快的会议的最佳主持人。她与 Adrian 进行了一场对话,引领我们快速纵览了 AI 如何影响了性能工程。以下是本次访谈的一些亮点(完整视频在下方)。
注意:P99 CONF 2026——一场关于性能相关一切的免费虚拟会议——将于 10 月 21-22 日上线。获取免费通行证,加入我们!
作为 Sun 鼎盛时期的性能专家,要深入性能问题的根源涉及大量的挖掘和推断。Cockcroft 回忆道:"在 Sun 的旧时代,人们会查看 vmstat 或其他工具输出的系统指标,然后猜测这些数字意味着什么。当时对这些概念的认知非常模糊。手册页写得也不清楚。"
Cockcroft 直接走到了源头——字面意义上。"我去阅读了所有内核源代码,准确找出这些数字从何而来、准确理解它们的含义、哪些是近似值,然后把所有这些都记录下来。"这促成了两本性能书籍的诞生:《Sun Performance and Tuning》和《Resource Management》。
"我的加速是无限的,因为没有这些工具,这段代码根本不可能存在。我不会有时间去构建它们。"
四十年后的今天,现在有了大量有用的端到端追踪工具,但 Cockcroft 的好奇心仍然在于工具没有展示什么。他继续说道:"在工具里一切看起来都还行——但系统的实际行为并不好。我通常会进来尝试找到一种新的方式来看待数据。一种新的分析类型,或者更深入一点、更细粒度一点,或者停止看平均值而开始看分布,然后发现各种没人知道正在发生的事情。"
目前,他正在用 vibe coding 工具来更好地分析他发现的异常。不必重新学习 Python 或在 Stack Overflow 上搜寻图形库的碎片,Cockcroft 现在可以在几分钟内搭建起自定义工具。"我的加速是无限的,因为没有这些工具,这段代码根本不可能存在。我不会有时间去构建它们。"
一个具体的 vibe coding 项目:Cockcroft 构建了(并开源了)工具,以更好地理解响应时间分布。
响应时间分布已经在 Cockcroft 的脑海中萦绕了十多年。当大多数人痴迷于百分位——是的,P99 CONF 也不例外——Cockcroft 最感兴趣的是直方图中响应时间峰值的分布。他相信百分位在试图理解现代 Web 服务的延迟和性能时并不适用。单一数字如 P99 无法告诉你底层分布是一个峰值还是多个峰值。而且当存在多个峰值时(现实世界中通常如此),均值、标准差,甚至 P99 本身都会失去大部分意义。
"百分位在试图理解现代 Web 服务的延迟和性能时并不适用。"
(来源:《A Tale of Two Histograms》)

例如,假设你有一个包含两个响应时间峰值的直方图:一个来自缓存命中的快速响应,一个来自未命中需要实际工作的慢速响应。随着缓存命中率的变化,每个峰的位置保持不变(即快速响应模式和慢速响应模式的延迟值不变),但峰值高度会上升和下降。"你的平均值和 P99 一直在剧烈变化,但实际上发生的只是你的缓存命中率在变化,"Cockcroft 说。
那么如何超越 P99 和平均值的测量呢?Cockcroft 做了他几十年来一直在做的事:深入研究并构建自定义工具。但如今,多亏了 LLM,这要简单得多。
"你的平均值和 P99 一直在剧烈变化,但实际上发生的只是你的缓存命中率在变化。"
他已经推导出了分析分布的统计学方法。ChatGPT 出现后,他很快用它构建了一个自动化这个过程的工具。它不会将所有东西压缩成一个平均值,而是识别出分布中任意数量的峰值,并追踪它们随时间的波动。它用 R 实现——一种 Cockcroft 很久没用过的语言,但 ChatGPT 对它相当熟悉——并且是开源的。如果你感兴趣,可以在他的《Percentiles Don't Work》文章和"A Tale of Two Histograms"演讲及 PPT 中了解更多("那是最好的响应时间,那是最差的响应时间……")
最后,Stephens 问 Cockcroft,他会与当今从事高性能系统的团队分享什么建议。他的首要建议是先从宏观视角开始找到有趣的东西,然后不断深入,直到检查单个慢请求的端到端。
"记住你小时候得到的那台显微镜,"Cockcroft 说。"首先,你必须用最低的分辨率——10 倍——来对焦,然后你可以切换到 100 倍并调整它,现在只观察一个点了。一旦你对准了它,就可以切换到 1000 倍。"
Cockcroft 的职业生涯都在构建让隐藏的性能问题变得可见的工具。我们期待着看到今年 P99 CONF 上其他人用 agentic 工具做出了什么来帮助识别和解决性能问题。
在 P99 CONF 了解最新的性能优化技术、工具和案例研究——免费且虚拟,10 月 21-22 日。获取免费通行证,加入我们!