讲师中心 微信公众号

工具推荐

视频效率加速
Seko
Seko

AI短剧一键生成成片

AniShort
AniShort

AI短剧协同制作平台

立刻MV
立刻MV

低成本歌曲 MV、视频生成

剧云
剧云

中文短剧剧本制作平台

Linux 内存回收策略解析

夏枫大大_9521

夏枫大大_9521

发布时间:2026-01-28 16:55:02

|

402人浏览过

|

来源于php中文网

原创

内存回收由min、low、high三水位线分级触发:low被击穿时kswapd异步回收,min被击穿时进程阻塞并直接回收,持续低于min则触发OOM Killer;真实压力需查/proc/zoneinfo中pages_low与pages_free差值。

linux 内存回收策略解析

内存回收什么时候真正开始?看三个水位线

Linux 不是等内存用光才动手,而是靠 min、low、high 三条水位线分级响应。它们存于每个内存区(zone)的 watermark[] 数组中,关系固定:min 。

  • low 被击穿 → kswapd 守护进程被唤醒,异步扫描 inactive 链表,悄悄回收页面,不卡应用
  • min 被击穿 → 当前分配内存的进程被阻塞,触发 直接回收(Direct Reclaim),同步清理,延迟明显可感
  • 持续跌破 min 且无法缓解 → 最终触发 OOM Killer,按 oom_score_adj 杀进程保系统

别只盯着 free -h 的 “available”,它只是估算;真实压力信号藏在 /proc/zoneinfo 里——查 pages_low 和当前 pages_free 的差值,才是判断是否已进入回收临界的真实依据。

匿名页 vs 文件页:回收逻辑完全不同

回收不是“一锅端”,内核对两类页区别对待:

  • 文件页(File Pages):比如读取过的 /etc/passwd 缓存在内存里。若未修改(clean),直接丢弃,下次访问再从磁盘读;若已修改(dirty),必须先写回磁盘(经 pdflush 或 writeback 线程),才能释放
  • 匿名页(Anonymous Pages):进程堆、栈、mmap(MAP_ANONYMOUS) 分配的内存。无磁盘备份,只能写入 swap 分区(或压缩后留在内存,见下条),否则就只能丢弃——但丢弃前得确认它没被写过(PageDirty 为 false)

这意味着:纯计算型服务(如 Java 应用堆大但文件缓存少)更容易触达 swap;而高 IO 服务(如数据库缓存大量脏页)可能卡在回写队列,表现为 wa% 持续偏高,pgpgout 却上不去。

logos-node
logos-node

在 Linux x86_64 上安装、更新或检查 Logos 区块链测试网验证节点。用于用户需要搭建 Logos 节点时使用。

下载

swappiness 是开关,不是油门

vm.swappiness 控制的是「匿名页」和「文件页」在回收时的相对优先级,不是“越小越不 swap”。它的作用点在 LRU 链表扫描阶段:

  • 值为 0:仅在内存极度紧张(min 水位以下)且文件页已基本清空时,才考虑 swap 匿名页
  • 值为 60(默认):匿名页和文件页按比例混合回收,倾向保留更多文件缓存
  • 值为 100:尽可能把匿名页换出,哪怕文件页还很充裕

常见误区:给数据库服务器设 swappiness=1 就能杜绝 swap?错。只要 kswapd 扫到足够多不活跃匿名页,且文件页已回收殆尽,它仍会 swap。真正有效的是配合 vm.vfs_cache_pressure=50(减少 dentry/inode 缓存回收压力)+ 限制进程 memcg 内存上限,把压力挡在 zone 外。

压缩 swap(zswap)不是万能加速器

启用 zswap(需内核开启 CONFIG_ZSWAP)后,内核会把准备 swap 的匿名页先压缩,暂存于内存中的 zpool,只有当压缩池满或页面太久未访问,才真正落盘。

  • 优势:大幅减少磁盘 I/O,尤其对 SSD 寿命友好;对突发性内存峰值响应更快
  • 代价:CPU 压缩/解压开销(实测约增加 2–5% sys CPU);压缩失败的页面仍要走传统 swap 路径
  • 坑点:zswap 默认使用 lzo 算法,压缩率低但快;换成 lz4 可提升压缩率,但需确认内核支持且不引入额外延迟

它解决的是「swap 频繁导致 IO 瓶颈」的问题,不是「内存根本不够」的问题。如果你的 SwapTotal 已接近耗尽,zswap 只是延缓 OOM,而非消除根源。

热门AI工具

更多
二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

Flowith
Flowith Hot

Flowith是一款基于画布和智能体工作流的 AI 协作工作空间。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

讯飞智文

一款面向学习和办公场景的AI文档创作工具,可辅助生成PPT与Word文档,提高资料整理和内容制作效率。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

6847

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2828

2023.08.10

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

6847

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2828

2023.08.10

线程和进程的区别
线程和进程的区别

线程和进程的区别:线程是进程的一部分,用于实现并发和并行操作,而线程共享进程的资源,通信更方便快捷,切换开销较小。本专题为大家提供线程和进程区别相关的各种文章、以及下载和课程。

4778

2023.08.10

页面置换算法
页面置换算法

页面置换算法是操作系统中用来决定在内存中哪些页面应该被换出以便为新的页面提供空间的算法。本专题为大家提供页面置换算法的相关文章,大家可以免费体验。

6936

2023.08.14

数据库三范式
数据库三范式

数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。

3125

2023.06.29

如何删除数据库
如何删除数据库

删除数据库是指在MySQL中完全移除一个数据库及其所包含的所有数据和结构,作用包括:1、释放存储空间;2、确保数据的安全性;3、提高数据库的整体性能,加速查询和操作的执行速度。尽管删除数据库具有一些好处,但在执行任何删除操作之前,务必谨慎操作,并备份重要的数据。删除数据库将永久性地删除所有相关数据和结构,无法回滚。

4181

2023.08.14

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

60

2026.11.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn