Linux swapon 命令及实际示例

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,你将学习如何使用 swapon 命令在 Linux 中管理交换空间(swap space)。交换空间是硬盘上的一个保留区域,当系统内存(RAM)不足时,操作系统可以使用它。你将首先了解交换空间的概念,然后检查当前的交换空间使用情况和配置,最后创建并启用一个新的交换文件。本实验涵盖了实际示例,并提供了逐步指导,帮助你有效地管理 Linux 系统上的交换空间。

Linux 命令速查表


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/BasicFileOperationsGroup -.-> linux/chmod("Permission Modifying") linux/SystemInformationandMonitoringGroup -.-> linux/df("Disk Space Reporting") linux/SystemInformationandMonitoringGroup -.-> linux/free("Memory Reporting") subgraph Lab Skills linux/cat -.-> lab-422942{{"Linux swapon 命令及实际示例"}} linux/chmod -.-> lab-422942{{"Linux swapon 命令及实际示例"}} linux/df -.-> lab-422942{{"Linux swapon 命令及实际示例"}} linux/free -.-> lab-422942{{"Linux swapon 命令及实际示例"}} end

理解 Linux 中的交换空间(Swap Space)概念

在这一步中,你将学习 Linux 中交换空间的概念。交换空间是硬盘上的一个保留区域,当系统的 RAM(随机存取内存)不足时,操作系统可以使用它。当系统需要的内存超过可用 RAM 时,它可以将不活跃的内存页从 RAM 临时转移到交换空间,从而释放 RAM 以供更活跃的进程使用。

交换空间可以是硬盘上的一个专用分区,也可以是一个交换文件。交换分区通常在操作系统安装时创建,而交换文件可以在之后创建和管理。

使用交换空间有助于防止系统内存耗尽,内存不足可能导致性能下降甚至系统崩溃。然而,过度使用交换空间也会对系统性能产生负面影响,因为访问硬盘上的数据比访问 RAM 中的数据要慢得多。

要检查当前的交换空间使用情况和配置,你可以使用 free 命令:

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           1.9Gi       144Mi       1.6Gi       2.7Mi       141Mi       1.6Gi
Swap:          2.0Gi          0B       2.0Gi

在示例输出中,系统配置了 1.9 GiB 的 RAM 和 2.0 GiB 的交换空间。

检查当前交换空间使用情况和配置

在这一步中,你将学习如何检查 Linux 系统上当前的交换空间使用情况和配置。

首先,你可以使用 free 命令来显示当前的内存使用情况,包括交换空间:

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           1.9Gi       144Mi       1.6Gi       2.7Mi       141Mi       1.6Gi
Swap:          2.0Gi          0B       2.0Gi

输出显示系统有 1.9 GiB 的 RAM 和 2.0 GiB 的交换空间,当前交换空间的使用量为 0 字节。

你还可以使用 swapon 命令获取更详细的交换空间配置信息:

$ sudo swapon --show
NAME      TYPE SIZE USED PRIO
/dev/sda2 partition 2.0G 0B -2

该命令显示了交换空间设备、类型、大小、当前使用情况和优先级。在此示例中,交换空间配置为一个大小为 2.0 GB 的分区,优先级为 -2。

要获取更详细的信息,你可以使用 cat 命令读取 /proc/swaps 文件的内容:

$ cat /proc/swaps
Filename				Type		Size	Used	Priority
/dev/sda2                               partition	2097148	0	-2

该文件提供了与 swapon --show 命令相同的信息,但格式不同。

创建并启用交换文件

在这一步中,你将学习如何在 Linux 系统上创建并启用一个交换文件。

首先,让我们创建一个大小为 1 GB 的交换文件:

$ sudo fallocate -l 1G /swapfile
$ sudo chmod 600 /swapfile

fallocate 命令用于创建指定大小的文件(在此示例中为 1 GB),而 chmod 命令为交换文件设置适当的权限。

接下来,你需要格式化交换文件并启用它:

$ sudo mkswap /swapfile
$ sudo swapon /swapfile

mkswap 命令用于初始化交换文件,而 swapon 命令用于启用交换文件。

要验证交换文件是否已启用,你可以再次使用 free 命令:

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           1.9Gi       144Mi       1.6Gi       2.7Mi       141Mi       1.6Gi
Swap:          3.0Gi          0B       3.0Gi

输出显示,交换空间的总大小现在为 3.0 GB,其中包括你刚刚创建的 1 GB 交换文件。

为了使交换文件在系统重启后仍然有效,你需要在 /etc/fstab 文件中为其添加一个条目:

$ echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab

这会在 /etc/fstab 文件中添加一行,使系统在启动时自动启用交换文件。

总结

在本实验中,你学习了 Linux 中交换空间的概念,交换空间是硬盘上的一个保留区域,当系统内存(RAM)不足时,操作系统可以使用它。你还学习了如何使用 free 命令检查当前的交换空间使用情况和配置。最后,你学习了如何创建并启用交换文件,这在需要超出交换分区提供的额外交换空间时非常有用。

Linux 命令速查表