- 文档
- 教程
【免费下载链接】linux-command
Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux
本篇指南以 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 4094free 输出中的第三部分即为交换分区(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):
- 禁用交换分区:
swapoff /dev/sdb2- 从
/etc/fstab中删除对应条目; - 使用 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
相关推荐
Linux 交换空间管理实战:mkswap 命令详解与 Swap 分区/文件搭建全流程
Linux 交换空间管理实战:mkswap 命令详解与 Swap 分区/文件搭建全流程 本指南以 Linux 命令大全仓库中的 mkswap 命令文档 http
文档教程Linux ifup 命令详解:激活网络接口与配套网络管理实战
Linux ifup 命令详解:激活网络接口与配套网络管理实战 本文基于 Linux 命令大全仓库(linux command)中的 ifup 命令文档 htt
文档教程Linux login 命令详解:登录系统与切换用户身份的完整指南
Linux login 命令详解:登录系统与切换用户身份的完整指南 导读 login 是 Linux 系统中负责"登录"的经典命令,它既能重新建立登录会话,也能
文档教程
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考