• 已删除用户
Administrator
发布于 2025-03-26 / 90 阅读 / 0 评论 / 0 点赞

Ubuntu 创建虚拟运行内存(交换空间 Swapfile)指南

当服务器或个人计算机的物理内存不足时,操作系统会使用交换空间(Swap)来模拟物理内存,防止因内存耗尽导致系统崩溃。在 Ubuntu 系统中,除了传统的交换分区,还可以通过创建交换文件(Swapfile)的方式来增加虚拟运行内存。本指南将详细介绍在 Ubuntu 系统中创建、配置和管理交换文件的步骤。

一、检查现有交换空间

在创建新的交换文件之前,建议先检查系统当前的交换空间使用情况。可以使用 free 或 swapon -s 命令进行查看:

使用 free 命令

free 命令可以显示系统内存和交换空间的使用情况,执行以下命令:

free -h

输出结果类似如下:

              total        used        free      shared  buff/cache   available

Mem: 7.7G 2.6G 387M 362M 4.7G 4.8G

Swap: 0B 0B 0B

使用 swapon -s 命令

swapon -s 命令可以列出所有已启用的交换空间:

swapon -s

若输出为空,说明系统当前没有启用交换空间。

二、创建交换文件

1. 确定交换文件大小

交换文件的大小取决于服务器或计算机的使用场景和物理内存大小。一般建议设置为物理内存的 1 - 2 倍。例如,如果物理内存为 2GB,交换文件可以设置为 2GB 到 4GB 之间。

2. 创建交换文件

使用 fallocate 命令创建交换文件。以创建一个 2GB 的交换文件为例,执行以下命令:

sudo fallocate -l 2G /swapfile

fallocate 命令用于在指定位置创建指定大小的文件,-l 参数指定文件大小。

3. 设置文件权限

为了确保系统安全,需要设置交换文件的权限。执行以下命令:

sudo chmod 600 /swapfile

这将确保只有 root 用户可以读写该文件。

4. 标记交换文件

使用 mkswap 命令将文件标记为交换文件:

sudo mkswap /swapfile

输出结果会显示交换文件的 UUID 和类型。

三、启用交换文件

1. 临时启用

使用 swapon 命令临时启用交换文件:

sudo swapon /swapfile

此时,可以再次使用 free -h 或 swapon -s 命令验证交换文件是否已成功启用。

2. 永久启用

为了确保系统重启后交换文件仍然可用,需要将其添加到 /etc/fstab 文件中。使用文本编辑器打开 /etc/fstab 文件:

sudo nano /etc/fstab

在文件末尾添加以下内容:

/swapfile none swap sw 0 0

保存并退出编辑器。

四、优化交换文件性能

1. 调整 swappiness 参数

swappiness 参数的值表示系统将内存数据交换到交换空间(Swap)的倾向程度,取值范围是 0 - 100。值越低,系统越倾向于保留内存数据,值越高,系统越倾向于使用交换空间。可以通过修改 /etc/sysctl.conf 文件来调整 swappiness 参数:

sudo nano /etc/sysctl.conf

在文件末尾添加或修改以下内容:

vm.swappiness = 10

保存并退出编辑器,然后执行以下命令使设置生效:

sudo sysctl -p

2. 启用 zram 压缩交换空间

zram 是一种基于内存的压缩交换空间,可以在有限的物理内存下提供更高的交换性能。可以通过安装 zram-config 包来启用 zram:

sudo apt install zram-config

安装完成后,zram 会自动配置并启用。

五、管理交换文件

1. 禁用交换文件

如果需要禁用交换文件,可以使用 swapoff 命令:

sudo swapoff /swapfile

2. 删除交换文件

在禁用交换文件后,可以删除交换文件。首先从 /etc/fstab 文件中删除交换文件的配置,然后执行以下命令删除文件:

sudo rm /swapfile