皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

Linux 解决在大型核心系统中 Out-Of-Memory Killer 的不准确性

一个补丁正在前往 Linux 内核的路上,看起来可能在 6.20~7.0 内核版本中准备好,以解决在处理大量核心系统时 OOM 杀手的不准确性行为。

本周,由 Linux 开发者 Mathieu Desnoyers 提交的补丁进入了 Andrew Morton 的 “mm-everything” 队列,旨在修复在大型多核系统上 OOM 杀手的不准确性问题。

Linux 解决在大型核心系统中 Out-Of-Memory Killer 的不准确性

2025 年初报告称,在处理当今高核心数系统时,OOM 杀手存在不准确性,至少在 250 核/线程以上的范围内:

“最近,几个内部服务在内核升级过程中出现了 RSS 使用量的回归问题。之前,它们运行在 6.2 版本之前的内核上,并能够通过备份看门狗进程读取 RSS 统计信息来监控并决定是否超出了内存预算。然而现在,一个具有五个线程的代表性服务,预计使用约一百 MB 内存,在一个 250 核的机器上,其内存使用量与预期值相差数十 MB —— 这构成了相当大的不准确性,导致看门狗进程采取了行动。

这对于任何在大型机器上的少量线程程序来说都是一个巨大的不准确性,严重影响了监控效果。这些统计计数器也用于做出 OOM 杀死决策,因此这种额外的不准确性可能在 OOM 情况下产生重大影响 —— 无论是导致错误的进程被杀死,还是 OOM 杀死后返回的内存少于预期。”

最后,虽然对 percpu_counter 的更改在许多多线程服务中显著提高了准确性,相比之前的每线程错误,但它也带来了性能影响 – 短生命周期进程可能慢达 12%,在 make test 工作负载中系统时间增加 9%。

此补丁正在前往主线内核的途中,希望能在即将到来的 Linux 6.20~7.0 版本周期中得到解决,以纠正这些不准确之处。

转自  Linux Addressing Out-Of-Memory Killer Inaccuracy On Large Core Count Systems – Phoronix