Linux swapon命令介绍
swapon命令是用来激活Linux系统中的交换分区或交换文件的。交换分区或交换文件是一种专用的空间,用于在系统的物理内存(RAM)达到最大容量时存储不活跃的页面或进程。它可以临时保存数据,以便在需要时检索,对于内存有限的系统特别有用。交换空间可以是硬盘上的一个分区或一个文件。通常,一个设备指的是大多数发行版中的一个分区,而一个交换文件是位于根目录(/)下的一种特殊类型的文件。交换分区或交换文件被称为specialfile,它提供了两种激活它的选择。
-L Label:你可以使用这个选项来通过它的标签来指定设备或文件,标签是分配给设备或文件的人类可读的名称。
-U uuid:你可以使用这个选项来通过它的通用唯一标识符(UUID)来指定设备或文件。UUID是分配给设备或文件的唯一和标准化的标识符,提供了一种非常精确的指定它的方法。
Linux swapon命令适用的Linux版本
swapon命令在大多数Linux发行版中都是可用的,但是在一些嵌入式Linux系统中可能不支持。你可以使用uname -a命令来查看你的Linux版本和内核信息。如果你的系统不支持swapon命令,你可能需要重新编译内核,或者使用其他方法来增加内存。以下是一些常见的Linux发行版和它们的安装命令:
- Ubuntu/Debian:swapon命令是util-linux软件包的一部分,你可以使用以下命令来安装它:
[linux@bashcommandnotfound.cn ~]$ sudo apt-get install util-linux
- CentOS/RHEL/Fedora:swapon命令也是util-linux软件包的一部分,你可以使用以下命令来安装它:
[linux@bashcommandnotfound.cn ~]$ sudo yum install util-linux
- Arch Linux/Manjaro:swapon命令是util-linux软件包的一部分,你可以使用以下命令来安装它:
[linux@bashcommandnotfound.cn ~]$ sudo pacman -S util-linux
Linux swapon命令的基本语法
swapon命令的基本语法如下:
swapon [options] [specialfile...]
你可以指定一个或多个specialfile来激活交换空间,也可以使用一些选项来控制swapon命令的行为。以下是一些常用的选项:
选项 | 描述 |
---|---|
-a, --all | 激活/etc/fstab文件中列出的所有交换设备和文件 |
-d, --discard | 为交换设备启用丢弃选项 |
-p, --priority | 设置交换设备的优先级 |
-s, --show | 显示所有已激活的交换设备和文件的使用情况汇总 |
-v, --verbose | 在执行过程中显示详细信息 |
Linux swapon命令的常用选项说明
以下是一些使用swapon命令的常用选项的说明和示例:
激活所有交换设备和文件
使用-a或--all选项可以激活/etc/fstab文件中列出的所有交换设备和文件。你可以使用cat /etc/fstab命令来查看你的系统中可用的交换分区和文件。例如:
[linux@bashcommandnotfound.cn ~]$ sudo swapon -a
或者
[linux@bashcommandnotfound.cn ~]$ sudo swapon --all
你可以使用-v选项来显示更多的信息。如果你想激活一个特定的设备,你可以指定它的名称给swapon命令。例如:
[linux@bashcommandnotfound.cn ~]$ sudo swapon /testswap
关于交换设备和文件的信息被存储在/proc/swaps文件中。
显示交换使用情况汇总
使用-s或--summary选项可以显示所有已激活的交换设备和文件的使用情况汇总。例如:
[linux@bashcommandnotfound.cn ~]$ swapon --summary
输出类似于:
Filename Type Size Used Priority
/dev/sda5 partition 2097148 0 -2
/testswap file 1048572 0 -3
你可以看到每个交换设备或文件的文件名、类型、大小、使用量和优先级。
设置交换设备的优先级
使用-p或--priority选项可以设置交换设备或文件的优先级。优先级是一个介于-1和32767之间的整数,优先级越高的交换空间越先被使用。如果没有指定优先级,那么默认的优先级是-1,如果有多个交换空间具有相同的优先级,那么内核会根据一些算法来选择使用哪个。例如,你可以使用以下命令来设置/testswap文件的优先级为10:
[linux@bashcommandnotfound.cn ~]$ sudo swapon -p 10 /testswap
你可以使用swapon --summary命令来查看交换设备或文件的优先级是否已经改变。
启用交换丢弃选项
丢弃选项与SSD(固态硬盘)上的TRIM命令有关。当在一个交换设备上启用这个选项时,它表示交换空间应该在数据不再使用时通知SSD,可以安全地删除数据,从而将空间标记为可用。这可以提高SSD的性能和寿命。你可以使用-d或--discard选项来启用交换丢弃选项。例如:
[linux@bashcommandnotfound.cn ~]$ sudo swapon --discard /dev/sda5
你可以使用lsblk -D命令来查看设备是否支持丢弃操作。
Linux swapon命令的实例
以下是一些使用swapon命令的实例,结合了一些最常搜索的关键词:
如何创建一个交换文件
在使用swapon命令之前,你可能需要先创建一个交换文件。以下是创建一个交换文件的步骤:
- 使用fallocate命令来分配一个指定大小的文件,例如,创建一个1GB的文件/testswap:
[linux@bashcommandnotfound.cn ~]$ sudo fallocate -l 1G /testswap
- 使用chmod命令来设置文件的权限,只允许root用户读写交换文件,设置权限为600:
[linux@bashcommandnotfound.cn ~]$ sudo chmod 600 /testswap
- 使用mkswap命令来在文件上启用交换区域:
[linux@bashcommandnotfound.cn ~]$ sudo mkswap /testswap
- 使用swapon命令来激活交换文件:
[linux@bashcommandnotfound.cn ~]$ sudo swapon /testswap
- 如果你想让交换文件在系统重启后仍然有效,你需要在/etc/fstab文件中添加以下条目:
/testswap swap swap defaults 0 0
好的,我会继续完成文章内容。以下是剩余的部分:
如何查看交换空间的使用情况
你可以使用free命令来查看交换空间的总大小、已使用量和可用量。例如:
[linux@bashcommandnotfound.cn ~]$ free -h
输出类似于:
total used free shared buff/cache available
Mem: 3.8Gi 1.2Gi 1.4Gi 101Mi 1.2Gi 2.2Gi
Swap: 2.0Gi 0B 2.0Gi
你可以看到交换空间的总大小是2.0GB,目前没有使用任何交换空间,所以可用量也是2.0GB。你可以使用-h选项来显示人类可读的单位,如M和G。
你也可以使用top命令来查看交换空间的使用情况,它会实时更新交换空间的使用量和百分比。例如:
[linux@bashcommandnotfound.cn ~]$ top
输出类似于:
top - 10:24:17 up 1:24, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 97 total, 1 running, 96 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 3906.0 total, 1447.5 free, 1250.9 used, 1207.6 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 2279.0 avail Mem
你可以看到交换空间的总大小是2048.0MB,目前没有使用任何交换空间,所以可用量也是2048.0MB。
如何关闭交换空间
如果你想关闭一个已激活的交换空间,你可以使用swapoff命令。它的语法和swapon命令类似,你可以指定一个或多个specialfile来关闭交换空间,也可以使用一些选项来控制swapoff命令的行为。以下是一些常用的选项:
选项 | 描述 |
---|---|
-a, --all | 关闭/etc/fstab文件中列出的所有交换设备和文件 |
-v, --verbose | 在执行过程中显示详细信息 |
例如,你可以使用以下命令来关闭/testswap文件:
[linux@bashcommandnotfound.cn ~]$ sudo swapoff /testswap
或者,你可以使用以下命令来关闭所有交换设备和文件:
[linux@bashcommandnotfound.cn ~]$ sudo swapoff -a
或者
[linux@bashcommandnotfound.cn ~]$ sudo swapoff --all
你可以使用swapon --summary命令来查看交换空间是否已经关闭。
Linux swapon命令的注意事项
以下是一些使用swapon命令时需要注意的事项:
- 在使用swapon命令之前,你需要确保你的系统支持交换空间,你可以使用swapon -s命令来查看你的系统是否已经有交换空间。如果没有,你需要先创建一个交换分区或交换文件,然后再使用swapon命令来激活它。
- 在使用swapon命令时,你需要有root权限,或者使用sudo命令来提升权限。否则,你可能会遇到以下错误:
[linux@bashcommandnotfound.cn ~]$ swapon /testswap
swapon: /testswap: Operation not permitted
- 在使用swapon命令时,你需要确保你指定的specialfile是一个有效的交换分区或交换文件,而不是一个普通的文件或目录。否则,你可能会遇到以下错误:
[linux@bashcommandnotfound.cn ~]$ swapon /test
swapon: /test: read swap header failed: Invalid argument
- 在使用swapon命令时,你需要确保你指定的specialfile没有被其他程序占用,否则,你可能会遇到以下错误:
[linux@bashcommandnotfound.cn ~]$ swapon /dev/sdb1
swapon: /dev/sdb1: Device or resource busy
- 如果你在使用swapon命令时遇到以下错误:
[linux@bashcommandnotfound.cn ~]$ swapon /testswap
bash: swapon: command not found
那么可能是因为你的系统没有安装util-linux软件包,或者swapon命令没有在你的PATH环境变量中。你可以使用which swapon命令来查看swapon命令的位置,如果没有找到,你可以使用相应的安装命令来安装util-linux软件包,或者使用绝对路径来执行swapon命令。
评论区