Pinterest 排查 CPU 瓶颈:系统里的僵尸进程
Finding zombies in our systems: A real-world story of CPU bottlenecks

2025 年初,Pinterest 的 ML 平台团队发现基于 Ray 的分布式训练任务频繁因网络中断而崩溃。经过三个多月的深入调查,我们将目光从应用层转向底层基础设施。日志显示 AWS 的 ENA 网络驱动频繁触发重置,根源在于 CPU 饥饿导致网络线程无法及时响应。尽管尝试了 Huge Pages、jemalloc 和中断绑定等多种优化手段,问题依旧在特定可用区(us-east-1a)的机器上周期性出现。最终,通过精细化的时序性能分析,我们锁定了一个在特定时刻独占 CPU 核心的神秘进程,揭示了隐藏在系统深处的“僵尸”问题。
我们终于接近了根本原因:有时,单个 CPU 核心会连续数秒占用 100% 的系统 CPU,而这正好与网络重置发生的时间点吻合。
- troelsSteegin
在如今满屏都是 AI 影响和工具的文章中,读这篇帖子真是一种怀旧的乐趣。话说回来,关于 AI,这个案例研究倒是能成为一个有趣的基准测试。
特别注意到,这里的根本原因之所以能被定位,是因为有人之前已经写过博客讨论过它。我们的“数字公地”应当被视为一种非外部性的资产。编辑:我的意思是“互联网应当是免费的”,但通过衍生作品进行的商业化应当补偿原作者。这有点跑题了,算了。
- alain94040
有趣的故事。
我对 Linux 调度器一无所知,但如果 96 个核心中只有一个核心在忙着追查那些幽灵分配,为什么网络线程不使用其余 95 个核心中的一个,反而被卡住好几秒?除非那个核心阻塞了整个内核,但那样的话问题应该会立刻变得非常明显。
- 4fterd4rk
我知道这是个天真得没救的问题,但 Pinterest 到底在用这些 AI 训练做什么?