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

为什么 free -h 显示内存仅剩 271 MiB,系统却稳稳运行?

0
分享至

新手看Linux内存,99% 都会被 free -h 的输出吓一跳。你打开终端,敲下 free -h,看到 Total 13.5 GiB,Free 却只有 271 MiB,换算下来才 2%。第一反应绝对是:“卧槽,内存要爆了!”但你再仔细看,Available 这一列赫然写着 7.10 GiB。系统非但没瘫,反而稳得像块砖。这个信息差,就是 /proc/meminfo 二十年来最大的坑。

要理解这个坑,你得先搞清内核对内存的态度。MemFree 不是你想象中的“还有多少内存可用”,而是内核正在“毫无作为”的内存——既没有给文件做缓存,也没有缓冲任何写操作,就是干躺着。在内核眼里,这种空闲内存简直是浪费,所以它会主动把剩余的物理内存用来存放页缓存(page cache),让磁盘上的文件块呆在内存里,读写时快得飞起。一旦有进程真的需要分配内存,内核会立刻把缓存中的可回收页吐出来,几乎零延迟。因此,一台健康运行的 Linux 机器,MemFree 的值天然就会趋向于零,它并不是危险信号,反而是内核充分利用了所有资源的标志。误以为 MemFree 高才安全,才是对 Linux 内存管理最大的误解。


正因为这种普遍误读,内核在 3.14 版本中专门引入了 MemAvailable 字段。MemAvailable 是一个估算值,它告诉你“现在不触发 swap 还能分配多少内存”。这个估算已经把大部分可回收的页缓存、slab 缓存都算了进去,比 MemFree 更贴近实际。于是就有了一个反直觉的公式:实际使用的内存 = MemTotal - MemAvailable,而不是像早期工具那样凑 MemTotal 减掉一堆字段去拼凑。经典的错误算法是 已用 = MemTotal - MemFree - Cached - Buffers,结果算出来 Linux 平白无故“吃”掉了好几 GB 内存,那个“Linux ate my RAM”的段子就是这么来的。

这里还有一个很容易掉进去的陷阱:试图让 Cached、Used、Free、Available 这几个数加回 Total。Cached 并不是独立于 Used 或 Available 之外的一块,它和 Available 是重叠的,也就是说,一笔缓存在回收后可以变成可用内存,但它同时也算在 Cached 中。如果你硬要画个韦恩图把四者拼成完整的 Total,怎么拼都不对。这是数据口径上的误区,和当年人们以为 Swap 加了 Available 就能把物理内存撑大一样荒谬。

看懂了这层关系,你再去对比各种系统监控工具的做法,就能理解为什么 btop 的算法这么简洁:used = MemTotal - MemAvailable。不做加减缓存,不做缓冲剔除,直接把估算工作交给内核自己。因为只有内核才知道哪部分缓存在真正需要时能立即回收,哪部分被钉住动不了。这种信任内核估算的策略,比任何用户态工具自己耍小聪明都可靠。原文作者在 Rust 中实现这个采集器时,也只储存 u64 的字节数,不做任何单位换算,把格式化交给 UI 层,再一次印证了“让专业的做专业的事”。

回到那句 free -h 的输出,当你看到 Free 271 MiB 时,不要急着去关掉无用的服务,也不要立刻动手扩内存。看一眼 Available,它才是内核为你预留的弹药。这个从 /proc/meminfo 里拆出来的教训,说明了一个朴素的运维道理:数据要看对字段,工具要用懂口径。否则,你很可能在帮内核数鬼影,然后白操了半天的心。

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

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.

相关推荐
热点推荐
中招了!郑丽文向日本灾区捐款,日本选择在7月31号这一天专门感谢

中招了!郑丽文向日本灾区捐款,日本选择在7月31号这一天专门感谢

阿龙聊军事
2026-07-31 12:45:38
NBA重磅三方交易方案曝光:活塞送出杜伦,换取杜兰特冲击总冠军

NBA重磅三方交易方案曝光:活塞送出杜伦,换取杜兰特冲击总冠军

夜白侃球
2026-07-31 12:47:59
国内成品油价二连涨,加满一箱油多花27元

国内成品油价二连涨,加满一箱油多花27元

界面新闻
2026-07-31 15:00:09
羁押712天无罪后获国家赔偿约41万,河南一资产上亿企业家夫妇多家企业倒闭,靠打零工为生

羁押712天无罪后获国家赔偿约41万,河南一资产上亿企业家夫妇多家企业倒闭,靠打零工为生

红星新闻
2026-07-31 08:39:15
殡葬师实话讲:遗体装上接运车,家属没必要一路跟着去殡仪馆

殡葬师实话讲:遗体装上接运车,家属没必要一路跟着去殡仪馆

椰青美食分享
2026-07-31 03:18:26
Seedance 级别的全模态控制,MiniMax H3 的商业视频成片新解法

Seedance 级别的全模态控制,MiniMax H3 的商业视频成片新解法

爱范儿
2026-07-31 13:30:15
当兵时捅过最大的篓子是什么?网友:至今还流传我的“光荣事迹”

当兵时捅过最大的篓子是什么?网友:至今还流传我的“光荣事迹”

另子维爱读史
2026-07-30 20:19:21
欧足联抵制所有国际足联赛事!

欧足联抵制所有国际足联赛事!

扬子晚报
2026-07-31 07:21:35
沙特宣布:与科威特、巴林、卡塔尔、巴基斯坦、土耳其、埃及、约旦等13国组建联盟

沙特宣布:与科威特、巴林、卡塔尔、巴基斯坦、土耳其、埃及、约旦等13国组建联盟

鲁中晨报
2026-07-31 12:14:07
正式退出!张本美和官宣决定,前往中国台北

正式退出!张本美和官宣决定,前往中国台北

乒乓乐园
2026-07-31 09:35:23
丢人丢到国外了!49岁中国奥运冠军严重违规被查,官方:他已辞职

丢人丢到国外了!49岁中国奥运冠军严重违规被查,官方:他已辞职

观察鉴娱
2026-07-31 08:44:57
“台独”“汉奸”在美国开了场“汉奸大会”

“台独”“汉奸”在美国开了场“汉奸大会”

补壹刀
2026-07-31 14:00:14
63岁穆帅狂喜!皇马2个月官宣5人加盟:2大巨星还在路上 巴萨慌了

63岁穆帅狂喜!皇马2个月官宣5人加盟:2大巨星还在路上 巴萨慌了

风过乡
2026-07-31 06:30:11
知名媒体人刘虎曝光衡水官员抢夺民办中学,拒绝对方300万封口费

知名媒体人刘虎曝光衡水官员抢夺民办中学,拒绝对方300万封口费

塔子山评说
2026-07-31 15:19:01
“竹知了”玩具不能拍视频发网上,它的“声音”侵权了……

“竹知了”玩具不能拍视频发网上,它的“声音”侵权了……

李晚书
2026-07-31 07:57:09
恶意撞死高三学生,邻居王某桂被维持死刑判决

恶意撞死高三学生,邻居王某桂被维持死刑判决

扬子晚报
2026-07-31 14:54:25
8月7日立秋,今年立秋是“闭眼秋”,老辈说的“闭眼秋”是什么意思?是好还是坏?

8月7日立秋,今年立秋是“闭眼秋”,老辈说的“闭眼秋”是什么意思?是好还是坏?

小谈食刻美食
2026-07-29 07:59:35
扛不住了!佛山两家大厂发布裁员公告,巅峰期超2500人,28年老员工面临失业

扛不住了!佛山两家大厂发布裁员公告,巅峰期超2500人,28年老员工面临失业

火山詩话
2026-07-31 12:30:10
意大利传奇球星、米兰名宿巴雷西去世,享年66岁

意大利传奇球星、米兰名宿巴雷西去世,享年66岁

懂球帝
2026-07-31 13:51:25
藏了21年的雷爆了!潘石屹离岸信托遭重税围剿,20亿起步最高70亿

藏了21年的雷爆了!潘石屹离岸信托遭重税围剿,20亿起步最高70亿

凡知
2026-07-31 10:26:35
2026-07-31 16:47:00
算力游侠
算力游侠
游走在API与报错之间,用魔法(AI)打败魔法的非硬核玩家。
428文章数 79关注度
往期回顾 全部

科技要闻

DeepSeek-V4-Flash正式版API上线公测

头条要闻

女童站引擎盖拍照划伤他人汽车 车主:其家属置之不理

头条要闻

女童站引擎盖拍照划伤他人汽车 车主:其家属置之不理

体育要闻

欧足联掀桌!因凡蒂诺这次真玩大了?

娱乐要闻

李小璐澄清夜宿门,被网友质疑想洗白

财经要闻

打新日确认!宇树科技IPO冲刺“冰与火”

汽车要闻

吉利星愿 我们的星愿第二季 圆满收官!

态度原创

游戏
家居
旅游
本地
公开课

《重装机兵》复活!《重装机兵钢之季节》PC试玩官宣

家居要闻

2026建博会(广州) 公装联探展交流活动

旅游要闻

峰会日程2.0 | 5条叙事主线,读懂2026年旅游业新变化!

本地新闻

神仙也“蓉”漂,哪吒与八仙,皆是成都出品!

公开课

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

无障碍浏览 进入关怀版