1. swap区是什么
首先我们要明白 swap 区是什么。其实,swap 区是一块磁盘空间,被用作虚拟内存扩充空间。当内存(RAM)资源不足的时候,部分不活动的程序或数据就会被移到 swap 区里,以便释放出内存空间给活跃的程序或数据使用。CentOS7默认创建了一个 swap 分区,在大多数情况下 swap 分区大小是根据内存大小进行的。例如,如果你有 2GB 或更大的内存,则 swap 分区大小通常是内存大小的 2 倍。如果你的服务器是虚拟主机,则你需要先确认是否允许增加虚拟内存。
2. 查看系统 swap 分区情况
在进行任何操作之前,我们需要先检查当前系统上 swap 分区的情况。
2.1 查看系统的 swap 分区信息
在 Linux 系统中,我们可以使用 free
或 swapon
来查看系统当前的内存和 swap 使用情况。
free -h
重要提示:-h
是一个可选参数,它意味着以可读的字节格式输出结果。如果不使用 -h
,则输出的是以字节为单位的精确值。
若执行成功,则会输出当前内存以及 swap 使用情况的统计信息。以下是一份示例输出:
total used free shared buff/cache available
Mem: 3.8G 2.6G 243M 9.0M 998M 1.0G
Swap: 4.0G 284M 3.7G
上述输出表明,系统中当前总计有 3.8G 内存和 4.0G 的 swap 分区。当前使用的内存为 2.6G,swap 分区使用了 284M, 3.7G 用作缓存。
2.2 查看 swap 分区的详细信息
你还可以执行以下命令以查看 swap 分区的详细信息:
sudo swapon --show
如果你的系统当前没有启用 swap 分区,则输出为空。
3. 如何添加或增加 swap 分区
如果你没有足够的 swap 分区,或者你的系统需要更多的虚拟内存扩容,那么你可以通过下面介绍的方法来增加 swap 分区的大小。
3.1. 创建 swap 文件
通过创建一个 swap 文件,我们可以轻松地添加或者扩大 swap 分区,而不需要额外的物理硬件支持。
以下命令可用于创建 swap 文件(在这个例子中,将创建一个 2 GB 大小的 swap 文件):
sudo fallocate -l 2G /swapfile
接下来,我们来设置文件权限,仅允许 root 用户读、写和执行作用于该文件:
sudo chmod 600 /swapfile
3.2. 启用 swap 文件
在启用 swap 文件之前,我们需要将该文件转换为支持 swap 的格式。我们可以使用下面命令将其转换为 swap 文件:
sudo mkswap /swapfile
完成转换后,我们可以通过执行以下命令来启用该文件:
sudo swapon /swapfile
如果你想确认 swap 文件是否已经成功启动,可以再次使用 swapon 命令来检查。注意,如果该文件在上一个步骤中被启用,则 swapon 将会在输出列表中显示该文件:
sudo swapon --show
3.3. 设为开机启动
为了实现 swap 文件的自动挂载,我们需要将其添加到 /etc/fstab 文件中。这可以通过添加一条新的行来实现,该行应包含 swap 文件的路径,由单个空格将其与“swap”关键字分开,后者告诉操作系统在启动过程中如何处理该文件。以下是一个实例,展示了如何将 swap 文件添加到 /etc/fstab 文件中:
/swapfile swap swap defaults 0 0
添加完成后,我们可以执行下面的命令来测试 /etc/fstab 文件中的更改是否正确:
sudo swapon --all
如果输出了 /swapfile,请检查 /etc/fstab 文件中的相关行是否已正确添加。
4. 如何删除 swap 文件
如果你要删除上面创建的 swap 文件,则可以遵循以下的步骤:
4.1. 禁用 swap 文件
首先,我们需要禁用该文件,这样我们就可以安全地删除它。
sudo swapoff -v /swapfile
如果该文件是唯一的 swap 设备,则执行该命令将会回收所有 swap 空间。
4.2. 删除 swap 文件
我们可以使用以下命令删除该文件:
sudo rm /swapfile
4.3. 从 /etc/fstab 文件中删除 swap 文件
最后,我们需要在 /etc/fstab 文件中删除与该文件相关联的行。
打开文件后,找到对应的swap文件的行,并将其删除。
5. 总结
这篇文章介绍了如何在 CentOS 7 系统上添加、删除和扩展 swap 分区的步骤。总的来说,我们可以通过创建一个 swap 文件来轻松地增加或扩展 swap 分区,而无需增加更多的物理硬件。