news 2026/10/3 2:03:39

Linux swapon 命令详解:激活与管理系统交换空间的完整实践指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux swapon 命令详解:激活与管理系统交换空间的完整实践指南
  • 文档
  • 教程

【免费下载链接】linux-command

Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux

项目地址:https://gitcode.com/GitHub_Trending/linux/linux-command
点击查看免费下载

本篇指南以 linux-command 仓库中的 swapon 命令文档 为核心,系统讲解 Linux 交换空间(swap)的激活、查看、优先级管理以及配套的交换分区/交换文件创建与关闭全流程。读者将掌握 swapon 的全部选项与参数含义,能够独立完成从 mkswap 创建、swapon 激活到 swapoff 关闭、/etc/fstab持久化配置的完整实操。

swapon 命令概述

swapon 命令用于激活 Linux 系统中的交换空间。Linux 系统的内存管理必须使用交换区来建立虚拟内存:当物理内存(RAM)不足时,内核会把暂时不用的内存页换出(swap out)到磁盘上的交换区,从而腾出物理内存供当前进程使用。

在 linux-command 仓库中,swapon 被归类在「磁盘维护」命令组(参见 README.md),与其紧密相关的配套命令还有:

  • swapoff:关闭指定的交换空间,实际上为 swapon 的符号连接,用于关闭系统的交换区;
  • mkswap:在一个文件或设备上建立交换分区(交换区的"创建"环节);
  • free:显示当前系统未使用和已使用的内存数目,用于验证交换区是否生效。

这四个命令共同构成了 Linux 交换空间的完整生命周期:创建(mkswap)→ 激活(swapon)→ 使用(free 观察)→ 关闭(swapoff)。

swapon 语法与选项

swapon(选项)(参数)

选项说明

-a:将/etc/fstab文件中所有设置为swap的设备,启动为交换区; -h:显示帮助; -p<优先顺序>:指定交换区的优先顺序; -s:显示交换区的使用状况; -V:显示版本信息。

对各选项做进一步说明:

  • -a, --all:批量激活/etc/fstab中所有标记为 swap 的设备。这是系统引导时最常被调用的方式,配合/etc/fstab中的swap挂载类型,可在开机时自动启用全部交换区;
  • -p <优先顺序>:指定交换区的优先顺序。当系统存在多个交换区时,内核优先使用优先级高的交换区。优先级值越大,使用优先级越高;优先级的取值范围与具体实现相关,通过合理设置可以让系统优先使用速度更快的 SSD 交换分区;
  • -s, --summary:显示交换区的使用状况。这是最常用的查看方式,等价于cat /proc/swaps,输出内容包含交换空间的文件名(Filename)、类型(type)、大小(Size)、已使用(Used)和优先级(Priority)等字段;
  • -h, --help:显示帮助信息;
  • -V, --version:显示版本信息。

参数

交换空间:指定需要激活的交换空间,可以是交换文件和交换分区。如果是交换分区,则指定交换分区对应的设备文件(如/dev/sdb2);如果是交换文件,则指定交换文件路径(如/swapfile1)。

实战:激活交换区并查看使用状况

基本激活操作

mkswap -c /dev/hdb4 # -c 是检查有无坏块,建立交换区前先检查是否有损坏的区块 swapon -v /dev/hdb4 # 激活 /dev/hdb4 交换分区,-v 输出详细激活信息 swapon -s # 查看交换区使用状况

执行swapon -s后的典型输出如下:

Filename type Size Used Priority /dev/hda5 partition 506008 96 -1 /dev/hdb4 partition 489972 0 -2

输出字段含义:

  • Filename:交换空间的设备文件名或交换文件路径;
  • type:交换区类型,partition表示交换分区,file表示交换文件;
  • Size:交换区大小(以 KB 为单位);
  • Used:已使用的空间(以 KB 为单位);
  • Priority:交换区优先级,数值越大优先级越高,默认通常为负数。

该命令输出与cat /proc/swaps等价(见 mkswap.md),可用于随时确认交换空间的实际启用状态。

批量激活 fstab 中所有交换空间

swapon -a

执行后,/etc/fstab中所有swap swap类型的条目都会被依次激活。这也是绝大多数发行版在系统引导阶段自动完成的工作,手动执行常用于交换分区离线维护或重启后的快速恢复场景。

创建并激活交换空间(含 fstab 持久化)

在实际运维中,swapon 通常与 mkswap 配合使用。下面基于 mkswap.md 的完整流程,分别演示交换分区与交换文件两种方案。

方案一:添加交换分区

使用 fdisk 创建交换分区(假设/dev/sdb2是创建的交换分区),然后使用 mkswap 命令设置交换分区:

mkswap /dev/sdb2

启用交换分区:

swapon /dev/sdb2

写入/etc/fstab,以便在引导时启用:

/dev/sdb2 swap swap defaults 0 0

方案二:添加交换文件

推荐优先使用交换分区;若没有足够空闲分区可用,则添加交换文件。创建大小为 512M 的交换文件:

dd if=/dev/zero of=/swapfile1 bs=1024 count=524288

使用 mkswap 命令设置交换文件:

mkswap /swapfile1

启用交换文件:

swapon /swapfile1

写入/etc/fstab,以便在引导时启用:

/swapfile1 swap swap defaults 0 0

验证交换空间已启用

新添了交换分区并启用它之后,使用cat /proc/swaps或 free 命令的输出来确认交换分区已被启用:

free -m total used free shared buffers cached Mem: 2016 1973 42 0 163 1497 -/+ buffers/cache: 312 1703 Swap: 4094 0 4094

free 输出中的第三部分即为交换分区(Swap),Swap: 4094 0 4094表示总容量 4094MB、已用 0MB、可用 4094MB。更详细的内存统计可查看/proc/meminfo中的SwapTotal与SwapFree字段(参见 free.md)。

关闭交换空间:swapoff

与 swapon 成对出现的是 swapoff 命令。swapoff 用于关闭指定的交换空间(包括交换文件和交换分区),实际上为 swapon 的符号连接。

swapoff(选项)(参数)

swapoff 的核心选项为-a:关闭配置文件/etc/fstab中所有的交换空间。

关闭指定交换分区的实例:

swapoff /dev/sda2

参数部分与 swapon 一致:交换空间可以是交换文件,也可以是交换分区对应的设备文件。

删除交换空间的完整步骤

当需要彻底移除某个交换空间时(参见 mkswap.md):

  1. 禁用交换分区:
swapoff /dev/sdb2
  1. 从/etc/fstab中删除对应条目;
  2. 使用 fdisk 或 yast 等工具删除分区。

此流程同样适用于交换文件:先用swapoff /swapfile1停用,再从 fstab 移除,最后删除文件。

何时需要关心交换空间

从内存管理的角度(依据 free.md 的说明):只要系统不频繁使用交换空间,就不必担心物理内存太少;如果 swap 经常被大量占用,则说明物理内存吃紧,需要考虑增加内存。对于应用服务器,通常关注-/+ buffers/cache一行的可用内存,若 free 值长期过低,也是考虑优化程序或增加内存的信号。

因此,swapon/swapoff 不仅是紧急扩容的手段,更是运维排查内存压力、规划服务器容量时的基础工具。配合swapon -s观察各交换区的 Used 变化,可以快速定位交换行为是否异常。

在本项目中的定位与延伸阅读

本文所依据的 swapon.md 是 linux-command 仓库 600 多个 Linux 命令文档之一。仓库以 dist/data.json 为命令索引(每条记录包含命令名、路径与简介),web 版网站基于 command 目录中的 Markdown 文件生成静态页面并提供索引搜索(参见 README.md 的「开发使用」一节,可通过 npm 包linux-command在代码中直接读取这些 Markdown 文档)。

与本文主题直接相关的仓库文档还包括:

  • swapoff 命令文档:关闭交换空间(swapon 的符号连接);
  • mkswap 命令文档:创建交换分区/交换文件的完整操作流程;
  • free 命令文档:内存使用情况查看与 swap 相关字段解读。

需要说明的是,不同发行版与内核版本对 swapon 的默认行为(如优先级默认值、-s输出列)可能存在细微差异,实际使用时以所在系统的man swapon为准。

  • 文档
  • 教程

【免费下载链接】linux-command

Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux

项目地址:https://gitcode.com/GitHub_Trending/linux/linux-command
点击查看免费下载
上一篇:Neuro项目架构深度解析:模块化AI语音交互系统的技术实现与性能优化
下一篇:终极指南:5分钟掌握Vim文件树插件NERDTree,提升编码效率300%

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/3 2:03:08

DRV8818+STM32F767工业级步进电机电流闭环设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/3 2:00:24

如何搭建自己的开源法律助手:3 款中文法律大模型选型与部署指南

如何搭建自己的开源法律助手&#xff1a;3 款中文法律大模型选型与部署指南 【免费下载链接】Awesome-Chinese-LLM 整理开源的中文大语言模型&#xff0c;以规模较小、可私有化部署、训练成本较低的模型为主&#xff0c;包括底座模型&#xff0c;垂直领域微调及应用&#xff0c…

作者头像 李华