来自:如何在Ubuntu系统上添加交换空间(Swap Space) - 知乎
*仅供自己存档
第一步:查看Swap信息
在我们开始之前,首先确保通过运行以下swapon命令检查系统是否已经有可用的交换空间。
$ sudo swapon --show
在 Ubuntu 中检查交换空间
如果您没有看到任何输出,则表示您的系统当前没有可用的交换空间。
此外,还可以使用free命令确认没有可用的交换空间。
$ free -h
在 Ubuntu 中检查可用交换空间
从上面的输出可以看出,系统上没有活动的交换区。
第 2 步:检查分区上的可用空间
要创建交换空间,首先,您需要检查您当前的磁盘使用情况,并确认系统上有足够的空间来创建交换文件。
$ df -h
在 Ubuntu 中检查文件系统磁盘使用情况
/分区有足够的可用空间来创建交换文件。
第 3 步:在 Ubuntu中创建交换文件
现在我们将使用fallocate"swap.img"
命令在Ubuntu root (/)目录上创建一个交换文件,大小为1GB(您可以根据需要调整大小)并使用ls 命令验证交换文件的大小,如图所示。
$ sudo fallocate -l 1G /swap.img
$ ls -lh /swap.img
在 Ubuntu 中创建交换文件
从上面的输出中,您可以看到我们已经创建了具有正确空间量(即1GB )的交换文件。
第 4 步:在Ubuntu中启用交换文件
要在 Ubuntu 中启用交换文件,首先,需要对该文件设置正确的权限,以便只有用户root
才能访问该文件。
$ sudo chmod 600 /swap.img
$ ls -lh /swap.img
设置交换文件的权限
从上面的输出可以看出只有root
用户有读写权限。
现在运行以下命令将文件标记为交换空间并启用交换文件以开始在系统上使用它。
$ sudo mkswap /swap.img
$ sudo swapon /swap.img
在 Ubuntu 中启用交换空间
通过运行以下命令验证交换空间是否可用。
$ sudo swapon --show
$ free -h
在 Ubuntu 中验证交换空间
从上面的输出中可以看出,我们的新交换文件已经成功创建,我们的 Ubuntu 系统将根据需要开始使用它。
第 5 步:在 Ubuntu 中永久挂载交换文件
要使交换空间永久存在,需要在/etc/fstab
文件中添加交换文件信息,并通过运行以下命令进行验证。
$ echo '/swap.img none swap sw 0 0' | sudo tee -a /etc/fstab
$ cat /etc/fstab
在 Ubuntu 中永久挂载交换文件
第 6 步:在 Ubuntu 中调整交换设置
您需要配置一些设置,这些设置会在使用交换时影响 Ubuntu 的性能。
调整交换值
Swappiness是一个 Linux 内核参数,用于指定系统将数据从 RAM 交换到交换空间的次数(以及频率)。此参数的默认值为“60”,可以使用“0”到“100”之间的任何值。值越高,内核对交换空间的使用就越高。
首先,通过键入以下命令检查当前的 swappiness 值。
$ cat /proc/sys/vm/swappiness
检查交换价值
当前的 swappiness 值60非常适合桌面使用,但对于服务器,您必须将其设置为较低的值,即10。
$ sudo sysctl vm.swappiness=10
要使此设置永久生效,您需要将以下行添加到文件中/etc/sysctl.conf
。
vm.swappiness=10
调整缓存压力设置
另一个可能想要更改的类似设置是vfs_cache_pressure
- 此设置指定系统将在其他数据上缓存多少inode和dentry详细信息。
您可以通过查询 proc 文件系统来检查当前值。
$ cat /proc/sys/vm/vfs_cache_pressure
检查缓存压力设置
当前值设置为100,这意味着我们的系统从缓存中删除 inode 信息的速度太快了。我建议应该将其设置为更稳定的设置,例如50。
$ sudo sysctl vm.vfs_cache_pressure=50
要使此设置永久生效,需要将以下行添加到文件中/etc/sysctl.conf
。
vm.vfs_cache_pressure=50
完成后保存并关闭文件。
第 7 步:在 Ubuntu 中删除交换文件(经试验,会删掉刚刚加上的交换空间)
要移除或删除新创建的交换文件,请运行以下命令。
$ sudo swapoff -v /swap.img
$ sudo rm -rf /swap.img
在 Ubuntu 中删除交换文件
最后,从/etc/fstab文件中删除交换文件条目。