0

0

Linux怎么配置swap分区_Linux创建和启用swap教程【内存】

裘德小鎮的故事

裘德小鎮的故事

发布时间:2026-02-22 18:56:03

|

185人浏览过

|

来源于php中文网

原创

swap分区创建后不生效的主因是未启用或启用失败;需用swapon --show和/proc/swaps确认状态,sudo swapon /dev/sdb1前先mkswap并确保设备未挂载,临时启用后须写入/etc/fstab,swapfile推荐fallocate创建并禁用btrfs的cow,swappiness=1更稳妥,ssd上swap已优化但大小宜设为内存的0.5–1倍。

linux怎么配置swap分区_linux创建和启用swap教程【内存】

swap 分区创建后不生效?检查 swapon --show/proc/swaps

swap 配置完却没被系统用上,最常见原因是没真正启用,或者启用失败但没报错。运行 swapon --show,如果输出为空,说明当前没有任何活跃 swap;再看 /proc/swaps,它和前者一致,是内核实际加载的权威来源。

实操建议:

  • sudo swapon /dev/sdb1 启用前,先确认设备存在且未挂载:lsblkmount | grep sdb1
  • 如果提示 swapon: /dev/sdb1: failed to activate swap: Device or resource busy,大概率是该分区已有文件系统(比如 ext4),需先清空:用 sudo mkswap /dev/sdb1 重写 swap 签名
  • 临时启用后记得加到 /etc/fstab,否则重启失效;格式必须严格:/dev/sdb1 none swap sw 0 0,第4字段不能写成 defaults

用文件当 swap?fallocatedd 快,但得禁用 COW(尤其在 btrfs 上)

物理分区不够或不想动磁盘结构时,swapfile 是更灵活的选择。但默认用 dd 创建大文件极慢,而 fallocate 是瞬间完成——前提是文件系统支持(ext4/xfs 可以,btrfs 默认不行)。

实操建议:

  • 创建前先关掉所有 swap:sudo swapoff -a
  • sudo fallocate -l 2G /swapfile 创建,比 dd if=/dev/zero of=/swapfile bs=1M count=2048 快两个数量级
  • btrfs 下必须先禁用写时复制:sudo chattr +C /swapfile,否则 mkswap 会失败并报 Operation not supported
  • 权限必须设为 600:sudo chmod 600 /swapfile,否则 swapon 会拒绝启用

swappiness 设成 1 不等于禁用 swap,只是大幅降低倾向性

很多人以为把 vm.swappiness 改成 0 就彻底不用 swap,其实不然。值为 0 时内核只在内存完全耗尽(OOM)前做紧急回收,但仍可能触发;设成 1 才是更稳妥的“几乎不用”,但依然保留保底能力。

GentleAI
GentleAI

GentleAI是一个高效的AI工作平台,为普通人提供智能计算、简单易用的界面和专业技术支持。让人工智能服务每一个人。

下载

实操建议:

  • 临时修改:sudo sysctl vm.swappiness=1
  • 永久生效要写进 /etc/sysctl.conf/etc/sysctl.d/99-swap.conf,内容就一行:vm.swappiness=1
  • 注意:容器环境(如 Docker)中该参数由宿主机控制,容器内改无效;Kubernetes 节点也需在 kubelet 启动参数里加 --fail-swap-on=false 才允许启用 swap

SSD 上用 swap 会不会加速磨损?现代内核已缓解,但别配太大

老观念认为 swap 频繁读写会缩短 SSD 寿命,这在十年前属实。现在内核从 4.15 开始默认启用 swap_idle 机制,会主动将冷页从 swap 移回内存,并减少对 SSD 的无效写入。

实操建议:

  • 不必为 SSD 特意禁用 swap,尤其笔记本或小内存 VPS;但 swap 大小建议控制在物理内存的 0.5–1 倍,比如 8G 内存配 4G swap 即可
  • 避免用 NVMe 盘上一个高 IO 负载分区(如数据库数据目录)同时兼作 swap,争抢队列会拖慢整体响应
  • 如果真担心磨损,可用 sudo smartctl -a /dev/nvme0n1 | grep Wear 查看实际磨损值,比理论估算更可靠

swap 的核心不是“要不要”,而是“怎么配得刚好”。配太大浪费空间、拖慢回收;配太小扛不住突发负载;用文件还是分区,取决于你愿不愿意承担 btrfs/chattr 这类隐性依赖。这些细节不显眼,但线上服务半夜 OOM,往往就差在这一步。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
resource是什么文件
resource是什么文件

Resource文件是一种特殊类型的文件,它通常用于存储应用程序或操作系统中的各种资源信息。它们在应用程序开发中起着关键作用,并在跨平台开发和国际化方面提供支持。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

170

2023.12.20

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

829

2023.08.22

counta和count的区别
counta和count的区别

Count函数用于计算指定范围内数字的个数,而CountA函数用于计算指定范围内非空单元格的个数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

199

2023.11.20

k8s和docker区别
k8s和docker区别

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

268

2023.07.24

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

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

513

2024.04.08

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

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

412

2024.04.08

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

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

447

2024.04.08

Docker容器化部署与DevOps实践
Docker容器化部署与DevOps实践

本专题面向后端与运维开发者,系统讲解 Docker 容器化技术在实际项目中的应用。内容涵盖 Docker 镜像构建、容器运行机制、Docker Compose 多服务编排,以及在 DevOps 流程中的持续集成与持续部署实践。通过真实场景演示,帮助开发者实现应用的快速部署、环境一致性与运维自动化。

24

2026.02.11

中国研究生招生信息网官方网站入口 研招网网页版在线入口
中国研究生招生信息网官方网站入口 研招网网页版在线入口

中国研究生招生信息网入口(https://yz.chsi.com.cn) 此网站是研究生报名入口的唯一官方网站

34

2026.02.24

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 9.6万人学习

Git 教程
Git 教程

共21课时 | 3.8万人学习

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号