网易首页 > 网易号 > 正文 申请入驻

2004年的一则寓言,照出Linux内存回收的困境

0
分享至

2004年9月28日,一则只有几百字的邮件回复出现在Linux内核邮件列表上。它没有贴出补丁,也没有讨论代码实现,而是讲了一个关于飞机、燃油和乘客的故事。但这则故事,却成了此后二十年里,人们理解Linux内存回收机制最锋利的隐喻。

故事的前一天,开发者Thomas Habets提交了一个名为“oom_pardon”的补丁,并留下了一句火药味十足的提议:能不能加一个sysctl,让内核“看在上帝的份上,永远别在内存耗尽时杀掉这些进程。如果别的都不能杀,我宁愿你直接panic”?(原文:How about a sysctl that does "for the love of kbaek, don't ever kill these processes when OOM. If nothing else can be killed, I'd rather you panic"?)这条请求毫不含糊地表达了对Linux OOM Killer默认行为的不信任——不是反对杀掉进程,而是要求在特定情况下,宁可系统崩溃,也别动我指定好的那几个。


这个诉求本身,就是一场辩论的导火索。正方逻辑很直白:有些进程是用户的底线,比如正在跑的科学计算、尚未保存的文档会话,甚至是桌面上的锁屏程序xlock。一旦被OOM Killer误判为可牺牲对象,损失远大于一次死机。于是Thomas试图用一条硬性豁免规则,在内存熔断机制上划出一块“不杀特区”。这一主张背后的情绪,是许多用户面对OOM时的共同体验:你明明有八个G的交换空间,刚刚只是打开了一个大文件,为什么非要把我刚写了三个小时的笔记进程杀掉?

但内核维护者并没有直接回答这个技术问题,而是用一个寓言,将整个OOM机制的设计逻辑撕开了一个口子。这个由LWN.net编辑corbet投下的故事,就是那封回复的主体,也是Linux圈子里流传至今的“飞机抛客”比喻。故事讲的是一家飞机制造公司发现,少装燃油能让飞机变轻、省钱省油。极少数情况下,飞机真会遇到燃油耗尽,一头栽下去。工程师们的解决方案,并不是多加油,而是开发了一套名为OOF(Out-Of-Fuel)的应急机制:在紧急时刻,选出一名乘客扔出机舱,必要时可以重复扔。很快,理论体系建立起来了,无数论文讨论如何“正确挑选受害者”:随机选?扔最重的人?扔最老的?乘客该不该花钱买豁免,从而让最穷的人成为牺牲品?如果扔的是最重的人,发现被扔的是飞行员怎么办?头等舱旅客能不能免于被扔?

这个比Windows蓝屏更荒诞的剧情,精确对应了OOM Killer的每一个设计点。飞机少装油,对应的是系统总倾向于超额分配内存,赌大多数进程不会同时用尽自己的份额。燃油耗尽坠机,就是物理内存耗尽、系统再无缓冲的状态。OOF机制,则直接指向Linux引入OOM Killer的初衷:与其让整个系统僵死,不如牺牲一个进程换取全局存活。而挑选受害者时需要考虑的体重、年龄、付费能力、社会身份,正好对应OOM Killer在计算badness分数时参考的进程内存占用、运行时长、oom_score_adj、是否为root进程、是否持有重要锁等维度。飞行员豁免对应了内核线程不可杀,头等舱特权对应了管理员手动调高oom_score_adj保护关键服务。这一整套比喻,用一种黑色幽默的方式,把内核内存回收策略中隐藏的粗暴与无奈,全都抖了出来。

但最狠的一刀留在结尾:自从有了OOF机制,即使没有燃油短缺,这个扔人程序也时不时会自行启动,把乘客丢出舱外。工程师们至今还在研究,这故障究竟是怎么引发的。这句话放在OOM语境下,就是在描述一个令无数运维人员血压升高的现实——OOM Killer经常在系统仍有大量Swap缓存、处理负载尚未饱和时被错误激活。它挥刀的速度,往往比应用释放内存的速度更快。这正是Thomas提出“宁可panic也不准杀”的动机之一:如果连豁免机制都没有,那么每一次OOM动作都可能是一次误杀,而用户只能看着日志里的out_of_memory字串,连解释权都在内核那边。

正反方观点交锋到此处,其实已经不需要胜负宣判。Thomas的方案是要硬性豁免,属于在现有机制上打补丁式的保守疗法;corbet的寓言则直接指向病因——只要内核延续“先超售、再牺牲”的内存管理传统,那么任何挑选算法都会留下冤魂。寓言中的航空工程师没有去多加油,内核社区也没有彻底走向基于cgroup的内存保障与精确记账,而是持续在OOM策略里修修补补。于是二十年来,oom_score的计算逻辑调整了无数次,oOM_kill_allocating_task由默认关闭到可选开启,内存压力失速控制也逐步成熟,但那个根本的困境依然在:我们仍然在用牺牲进程的方式,为内存超售政策兜底。

我的判断很明确。这则2004年的寓言从未过时,因为它并不只是在批评OOM Killer这个机制,而是在揭示任何一种资源回收系统若缺乏主动保障,就会走向盲目牺牲的必然路径。无论硬盘的配额回收、容器的驱逐策略,还是云原生环境下的Pod Eviction,底层逻辑都和飞机抛客如出一辙。解决之道不是找到一种完美的挑选算法,而是像现代航空业那样,把油箱装满,不许为了省油而拿乘客的命去赌。翻译成技术语言,就是让内存分配从一开始就走向硬性担保,而不是依赖事后挥刀。只不过这场手术要动的地方太多,直到今天,各个操作系统仍然迈不出那一步。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
唐嫣素颜进幼儿园!6岁女儿戴皇冠萌翻全场,罗晋全程冷脸零互动

唐嫣素颜进幼儿园!6岁女儿戴皇冠萌翻全场,罗晋全程冷脸零互动

优墨出品
2026-05-30 08:57:35
京东618开门红4小时战报出炉:iPhone 1分钟破亿、华为手机10分钟增超5倍

京东618开门红4小时战报出炉:iPhone 1分钟破亿、华为手机10分钟增超5倍

快科技
2026-05-31 09:34:18
宇树机器人被批只是“遥控大玩具”,一代人有一代人的皮影戏

宇树机器人被批只是“遥控大玩具”,一代人有一代人的皮影戏

可达鸭面面观
2026-05-27 16:35:44
奉劝所有人:退休后,跟别人关系再好,一日游、二日游都行,但千万别尝试长时间一起游,否则早晚会后悔

奉劝所有人:退休后,跟别人关系再好,一日游、二日游都行,但千万别尝试长时间一起游,否则早晚会后悔

背包旅行
2026-05-28 18:04:35
拉夫罗夫:莫斯科将把所有历史上的俄罗斯土地归还其合法家园

拉夫罗夫:莫斯科将把所有历史上的俄罗斯土地归还其合法家园

旧窗老街
2026-02-23 01:50:19
杨受成“霸占”容祖儿半生:不娶也不放,她到底图什么?

杨受成“霸占”容祖儿半生:不娶也不放,她到底图什么?

橙星文娱
2026-05-12 15:17:44
人类灭绝已成定局?科学家算出人类灭绝日期,我们还能幸存多久?

人类灭绝已成定局?科学家算出人类灭绝日期,我们还能幸存多久?

蜉蝣说
2026-05-28 19:49:46
媒体人:广厦无法匹配张镇麟的强度,上海阵容厚度优势让人绝望

媒体人:广厦无法匹配张镇麟的强度,上海阵容厚度优势让人绝望

懂球帝
2026-05-31 22:44:31
颠覆认知!近2万人研究:每周一次性生活,男性癌症风险降低69%

颠覆认知!近2万人研究:每周一次性生活,男性癌症风险降低69%

科技虎虎
2026-05-31 10:09:27
“都把儿子养雌化了!”初中男孩出现雌化现象,家长却执迷不悟

“都把儿子养雌化了!”初中男孩出现雌化现象,家长却执迷不悟

妍妍教育日记
2026-05-29 07:55:13
电车的“免费午餐”结束了:养路费改革的必然与公平

电车的“免费午餐”结束了:养路费改革的必然与公平

民间胡扯老哥
2026-05-30 06:39:32
上海一同学聚会吃了43万6,请客的人先行离开,剩下的人当场翻脸

上海一同学聚会吃了43万6,请客的人先行离开,剩下的人当场翻脸

萧竹轻语
2025-06-11 17:21:59
生育大局已定:不出意外的话,从2026年起中国人口将迎来3大变化

生育大局已定:不出意外的话,从2026年起中国人口将迎来3大变化

墨兰史书
2026-06-01 03:20:03
老人最适合吃的高蛋白,虾肉只排第四,第一名很多人都不知道!

老人最适合吃的高蛋白,虾肉只排第四,第一名很多人都不知道!

健康科普365
2026-05-28 19:04:58
给力,克劳福德透露波波维奇关于文班亚马的“金句”,改变了一切

给力,克劳福德透露波波维奇关于文班亚马的“金句”,改变了一切

好火子
2026-06-01 04:48:25
随着雷霆3-4出局,NBA总决赛确定:马刺vs尼克斯!总冠军预测如下

随着雷霆3-4出局,NBA总决赛确定:马刺vs尼克斯!总冠军预测如下

小火箭爱体育
2026-05-31 11:29:29
孔蒂助教斯泰利尼回击德布劳内:你应该学学莫德里奇

孔蒂助教斯泰利尼回击德布劳内:你应该学学莫德里奇

懂球帝
2026-06-01 07:10:29
卫冕失败!亚历山大空砍35+9功亏一篑 两连庄MVP却无缘两连冠

卫冕失败!亚历山大空砍35+9功亏一篑 两连庄MVP却无缘两连冠

醉卧浮生
2026-05-31 10:49:15
梭哈字母哥!开拓者豪赌筹码曝光:杨瀚森等4人+3首轮 归还互换权

梭哈字母哥!开拓者豪赌筹码曝光:杨瀚森等4人+3首轮 归还互换权

林子说事
2026-05-31 12:17:41
洪秀全选妃有多苛刻?不但要求容貌漂亮,还有一要求令女性难接受

洪秀全选妃有多苛刻?不但要求容貌漂亮,还有一要求令女性难接受

铭记历史呀
2026-06-01 02:23:45
2026-06-01 08:08:49
报错免疫体
报错免疫体
一名在需求评审和数据异常中反复横跳的产品运营。
4325文章数 33关注度
往期回顾 全部

科技要闻

戴尔诺基亚又回来了!AI重估老牌科技公司

头条要闻

媒体:中国防长不去"香会" 主办方的意图落空了

头条要闻

媒体:中国防长不去"香会" 主办方的意图落空了

体育要闻

阿森纳用最悲壮的方式,成就了巴黎王朝

娱乐要闻

朱军退休,正义虽迟但到,女方受惩

财经要闻

网红驱蚊产品,标注化妆品竟含农药成分

汽车要闻

900V+3.2秒破百 领克10+&领克10上市16.99万元起

态度原创

本地
时尚
旅游
艺术
公开课

本地新闻

用剪纸的方式,打开江苏扬州

梓渝:慢下来,也很好

旅游要闻

热门项目一票难求,“逛工厂”火爆出圈

艺术要闻

李讷刘思齐邵华童年照曝光!"红二代"狂草热榜,大草为何难写好?

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版