讲师中心 微信公众号

工具推荐

视频效率加速
Laper
Laper

剧本策划到成片协作

AniShort
AniShort

AI短剧协同制作平台

立刻MV
立刻MV

低成本歌曲 MV、视频生成

剧云
剧云

中文短剧剧本制作平台

LinuxSwap配置策略_内存压力缓解方案解析【指导】

风浩姑娘_9110

风浩姑娘_9110

发布时间:2026-01-03 14:26:02

|

247人浏览过

|

来源于php中文网

原创

绝大多数现代 Linux 系统优先选 swapfile,因其灵活可调、易迁移且主流文件系统支持良好;swap partition 仅在对启动时低延迟有硬性要求的场景下适用。

linuxswap配置策略_内存压力缓解方案解析【指导】

swapfile 与 swap partition 哪个更合适?

绝大多数现代 Linux 发行版(尤其是桌面或云服务器)用 swapfile 更灵活。它不依赖独立分区,可动态增删、迁移,且 ext4/xfs 都支持(需启用 inode64 和 large_file 等特性)。而 swap partition 启动早、理论延迟略低,但扩容困难,重装系统易误删,且在 LVM 或加密卷中管理成本高。

实操建议:

  • 新部署优先选 swapfile,路径推荐 /swapfile(避免挂载点下,防止被快照或备份工具误操作)
  • 若已用 swap partition 且无扩容需求,无需强行切换
  • swapfile 必须用 fallocate 创建(非 dd),否则可能产生稀疏文件,触发内核拒绝激活
  • 确认文件系统支持:运行 tune2fs -l /dev/sdXN | grep "Filesystem features",确保含 has_journal 和 ext_attr(ext4);xfs 则需 xfs_info /mount/point 查看 features=... 是否含 swapfile

swappiness 设为 1 还是 0?

swappiness=0 并不等于“禁用 swap”——它只让内核在内存真正耗尽(OOM killer 触发前)才开始换出页面;而 swappiness=1 是更务实的折中:允许极少量冷页回收,避免突发分配时卡顿。实测中,设为 0 反而可能加剧 OOM 风险,尤其在使用透明大页(THP)或容器场景下。

关键点:

Biopython
Biopython

全面的分子生物学工具集。适用于序列操作、文件解析(FASTA/GenBank/PDB)、系统发育分析,以及通过 Bio.Entrez 以编程方式访问 NCBI/

下载
  • 修改后需执行 sysctl vm.swappiness=1 生效,持久化写入 /etc/sysctl.conf 或 /etc/sysctl.d/99-swap.conf
  • 容器环境(如 Docker/K8s)中,宿主机 swappiness 仍生效,但容器 cgroup 的 memory.swappiness 可单独覆盖
  • 不要盲目跟风设为 100:那会频繁换入换出,SSD 寿命和延迟双受损

zram + swapfile 混合配置是否必要?

对 RAM ≥ 16GB 的通用服务器,纯 swapfile 足够;但对内存 ≤ 8GB 的轻量设备(如树莓派、边缘网关),zram 是更优前置缓冲。它把部分匿名页压缩后存于 RAM,延迟远低于磁盘 swap,且不消耗额外存储空间。

混合策略要点:

  • zram 应设为高优先级(swapon --priority 100 /dev/zram0),swapfile 设为低优先级(如 --priority 10),确保先压后换
  • zram 大小建议设为物理内存的 1/4~1/2(如 4GB RAM → zram_size=1G),过大反而增加压缩开销
  • 启用 zram-generator(systemd)比手动写 service 更可靠,配置文件放 /etc/systemd/zram-generator.conf,内容只需
    [zram0]
    zram-size = 1G
    compression-algorithm = zstd
  • 注意:zram 不处理 page cache,仅缓存匿名页(堆、栈、私有匿名映射),所以磁盘 I/O 压力大的场景仍需真实 swapfile

swap 使用率高但内存充足?查这几个指标

单纯看 free -h 的 SwapUsed 容易误判。真正要关注的是换入换出频率和延迟:

  • 运行 vmstat 1,紧盯 si(swap-in KB/s)和 so(swap-out KB/s):持续 > 1MB/s 表示压力真实存在
  • 检查 /proc/vmstat 中的 pgpgin/pgpgout(总页入/出次数)与 pswpin/pswpout(swap 页入/出次数),比值过高说明大量数据在磁盘 swap 和 RAM 间反复搬运
  • cat /sys/block/*/stat 查对应 swap 设备的 rd_msec/wr_msec,若单次 IO 耗时 > 50ms(HDD)或 > 5ms(SSD),说明 swap 已成瓶颈,不是调参能解决的
  • 用 smem -s swap -r | head -10 找出实际占用 swap 的进程,常是 Java 应用未设 -XX:+UseContainerSupport 或 Python 的 mmap 大文件未 munmap

swap 不是救命稻草,而是内存管理的最后防线。真正该花时间的,是定位谁在长期持有匿名页、是否启用了不必要的缓存、cgroup 限额是否过松——这些比调 swappiness 影响大得多。

热门AI工具

更多
Flowith
Flowith Hot

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

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

超级麦吉

一款通过数字员工协作完成调研、数据分析与文档制作的AI办公平台。

二狗PPT
二狗PPT Hot

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

豆包大模型

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

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

音述AI
音述AI Hot

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

DeepSeek

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

WorkBuddy

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

相关专题

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

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

6927

2023.07.18

堆和栈区别
堆和栈区别

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

2848

2023.08.10

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

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

6927

2023.07.18

堆和栈区别
堆和栈区别

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

2848

2023.08.10

k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

825

2023.07.24

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

6759

2024.04.08

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

7917

2024.04.08

docker镜像有什么用
docker镜像有什么用

docker 镜像是预构建的软件组件,用途广泛,包括:应用程序部署:简化部署,提高移植性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3173

2024.04.08

Go-Zero API开发使用教程
Go-Zero API开发使用教程

本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。

0

2026.11.12

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
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