惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
博客园 - 司徒正美
Hugging Face - Blog
Hugging Face - Blog
博客园 - 叶小钗
The Cloudflare Blog
D
DataBreaches.Net
J
Java Code Geeks
G
Google Developers Blog
L
LangChain Blog
N
Netflix TechBlog - Medium
Stack Overflow Blog
Stack Overflow Blog
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
WordPress大学
WordPress大学
小众软件
小众软件
量子位
Apple Machine Learning Research
Apple Machine Learning Research
P
Proofpoint News Feed
博客园_首页
罗磊的独立博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
B
Blog
腾讯CDC

InfoQ - 促进软件开发领域知识与创新的传播

Meta 收购 Manus 这事儿泡汤了 5.5万 Star 开源项目 Ghostty 被迫出走,GitHub 正在终结一代技术人的乌托邦 Slack 长时运行多智能体系统的上下文管理方案 从 T+1 到分钟级:金城银行基于 Apache Doris 构建高可靠、强一致的实时数据平台 谷歌云推出 Agents CLI,简化 AI 智能体开发全流程 Claude官方击穿高薪、高学历的安全防线!Anthropic点名10大高危职业,但有群人暂时稳了 亚马逊云科技终止 WorkMail 服务,并将 App Runner 转入维护模式 OPPO小布记忆:全模态碎片化内容的理解与智能整理实践|AICon上海 模力工场038周AI应用周榜:工具在消失,工作流在出现 Akamai CEO Tom Leighton:Agent 时代来临,云基础设施正从“中心化”转向“分布式边缘” 日均数百亿入库背后:从“人肉调度”到K8s弹性架构,度小满金融基于OceanBase重构入库架构实践 百度文库网盘发布GenFlow 4.0:月活用户超1亿,要把网盘变成全端AI工作台 Altman 投的 Agent 终端 Warp 开源了!斩获3.5万star 哪些客户需要拒, 敢让龙虾决定吗?_AI&大模型_InfoQ 中文站_InfoQ精选视频 从开发到生产:为什么越来越多的机器学习团队纷纷迁移到 Snowflake | BUILD 2025_AI&大模型_王玮_InfoQ精选视频 探索多智能体工作流:LangGraph Snowflake Cortex AI | BUILD 2025_AI&大模型_王玮_InfoQ精选视频 腾讯云分布式缓存数据库:AI Agent - 从提示词工程到 Harness 工程 | 腾讯云数据库 DBTalk_腾讯_凌敏_InfoQ精选视频 基于 Streamlit 为 CSV 数据构建分析智能体 | BUILD 2025_AI&大模型_王玮_InfoQ精选视频 AI 智能体:告别文档缺漏 | BUILD 2025_AI&大模型_王玮_InfoQ精选视频 构建 AI 驱动的数据管道:深度探讨 Snowflake Openflow 与非结构化数据 | BUILD 2025_AI&大模型_王玮_InfoQ精选视频 云端太贵、本地不够聪明,英特尔押注“端云混合AI”:智能体PC会替人完成工作 不到10%的存储投入,可能拖垮90%的GPU投资!IBM把AI Agent塞进存储系统,算清企业最容易忽略的一笔账 Snowpark 上手实战 | BUILD 2025_大数据_王玮_InfoQ精选视频 ClickHouse + Langfuse,构建 Agent 可观测基石 腾讯云分布式缓存数据库:Cluster Proxy 共享连接架构深度解析 | 腾讯云数据库 DBTalk_腾讯_凌敏_InfoQ精选视频 AI 写代码太烧钱了:Copilot、Claude 一起涨价,不如把程序员请回来? 英特尔发布至强600系列工作站处理器与锐炫Pro B70 GPU,全新AI工作站来了 腾讯云分布式缓存数据库:从 Redis 到 Valkey - 开源社区如何快速创新 | 腾讯云数据库 DBTalk_腾讯_凌敏_InfoQ精选视频 印奇这次要“从0重做”智驾模型!首谈阶跃和千里双公司布局:中国AI商业闭环要靠车跑出来 从Cursor返聘归来,90后华裔女高管带Claude开启日更模式:token成本比工程师工资低多了!
Pinterest 工程师消除 CPU 僵尸进程,解决生产环境瓶颈
作者:Mark Silv · 2026-05-20 · via InfoQ - 促进软件开发领域知识与创新的传播

Pinterest 发布了一份详细的技术报告,阐述他们的工程师如何追踪并解决了导致机器学习训练任务崩溃的间歇性 CPU 资源饥饿问题。通过识别团队所说的“僵尸”(即由崩溃循环的默认代理所留下的内存泄漏 cgroups),工程师们成功地恢复了分布式计算平台的稳定性。

该问题表现为间歇性网络故障以及在 PinCompute 上的任务崩溃。PinCompute 是一个基于 Kubernetes 的平台,Pinterest 超过一半的离线机器学习工作负载都在该平台上运行。它每月会为这些任务预配数万个 Ray 集群。在某些用例中,由于弹性网络适配器(ENA)设备重置和数据包丢失,训练任务的成功率下降了超过 25%。初步调查工作遇到了麻烦,因为汇总的 CPU 利用率看起来很正常,掩盖了底层的故障。

由于无法通过高级仪表盘进行监控,基础设施团队转而使用 mpstat 进行逐核分析。调查发现,个别内核的系统 CPU 使用率会连续数秒达到 100%。这种行为非常棘手,因为如果处理 ENA 网络中断的某个内核达到饱和状态,驱动程序的 NAPI 轮询线程就可能会因为缺乏处理周期而受阻,从而触发 ENA 设备重置(这是一种事务完成操作停滞超过五秒时启动的自愈机制),进而导致连接中断,最终使 Ray 任务崩溃。

为了准确定位导致内核饱和的根源,团队利用了在 12 小时重现窗口内每两分钟运行一次的性能捕获。通过在 Netflix Flamescope 中可视化这些捕获的数据,工程师们得以深入查看网络重置触发的确切时刻。他们发现,通常情况下 CPU 占用率不足 1% 的 kubelet 进程,此时却飙升至约 6.5%。其中大部分时间都耗费在内核函数 mem_cgroup_nr_lru_pages 中。

调查最终将问题追溯到了其节点所使用的 AWS 深度学习 AMI。该基础镜像中包含一个默认启用的 Amazon ECS 代理,但 Pinterest 并未使用该代理。在每次重启时,该代理都会陷入崩溃循环并泄漏内存控制组(memcgs)。活跃使用的 memcgs 仅有 240 个,而“僵尸”memcgs 却累积了近 70000 个,这导致 kubelet 在每次 cgroup 状态同步时都必须遍历这份膨胀的列表,从而独占一个内核多达数秒之久。

该问题的解决方法相对简单,但需要对系统堆栈有一个深入的理解。为了解决了这一瓶颈,Pinterest 在基础镜像中禁用了 ECS 代理的 systemd 单元,并重启受影响的机器来清除累积的 cgroups 。自此之后,内存 cgroup 的数量稳定了下来,网络重启现象也没有再出现。这一经验表明,应用程序、编排器与内核之间的抽象层往往会掩盖真正的原因:在这个案例中,正是冗余的用户空间守护进程导致了内核状态泄漏。

虽然 Pinterest 这次是通过手动分析来解决问题的,但团队也意识到,就生产环境的可观测性而言,持续的、按时间索引的分析具有重要的价值。诸如 gProfiler(Pinterest 目前正与英特尔合作开发)以及基于 eBPF 的平台(如 Parca 和 Grafana Pyroscope)这样的工具,能够提供集群范围的全局可见性,从而缩短从症状到根本原因的排查路径,使工程师能够实时识别问题模式,而不必在故障发生后手动进行排查。

通过分享研究成果,Pinterest 工程团队强调,通常来说,在规模比较大的环境中,性能表现不仅取决于应用程序代码,也很大程度上取决于基础镜像的默认配置。他们的实践经验为软件工程师们敲响了重要的警钟:要对系统默认设置持质疑态度,并熟练掌握底层诊断工具。

原文链接:https://www.infoq.com/news/2026/05/pinterest-cpu-zombies-bottleneck/