在系统中发现僵尸进程:一个关于 CPU 瓶颈的真实案例 笔记

在系统中发现僵尸进程:一个关于 CPU 瓶颈的真实案例

Pinterest 的机器学习平台团队曾因间歇性网络连接问题,导致基于 Ray 的训练任务频繁崩溃,从而引发了 PinCompute 团队的深入调查。此次调查历时超过三个月,发现故障与 AWS EC2 实例上的 ENA 网络驱动程序重置存在相关性。这些重置由 CPU 饥饿引起,并与高系统 CPU 使用率相关联。初期,团队尝试了多种解决方案,包括使用大页内存和内存分配器,但均未能解决问题。值得注意的是,该问题仅出现在 Pinterest 的某个 AWS 可用区。通过 perf 和 mpstat 进行的性能分析揭示了单个 CPU 核心饱和的现象。利用 perf 进行的时序性能剖析进一步锁定了一个间歇性占用大量 CPU 资源的进程为罪魁祸首。该进程被确认为僵尸进程。对僵尸进程及其对 CPU 利用率和网络驱动程序性能影响的发现,使团队更深入地理解了系统瓶颈所在。
CdXz5zHNQW_ETi1Y6sqJq.png