如何在 Ubuntu 20.04 上添加交换空间

内存交换是在物理内存不足时管理内存的现代方式,操作系统使用交换内存来运行或处理程序。 交换空间是磁盘中用于在物理内存已满时临时存储程序数据的部分。 本文将引导您了解如何在 ubuntu 20.04 中维护和添加交换空间,因为它默认在 Linux 系统中进行管理。

检查系统中分配的交换内存

在我们继续之前,让我们检查系统是否有任何可用的交换空间。 您还可以附加多个交换文件,但只有一个就足够了。 我们可以使用以下命令检查交换。

$ sudo swapon --show

在上面的输出中,我们没有在系统中维护任何交换空间,因此它没有显示任何输出。

同样,我们也可以使用 自由 命令,并添加 -h 标志将以人类可读的形式显示输出。 它显示物理和交换内存的使用和可用性记录。 如果系统中没有分配交换空间,它将在内存记录列中显示 0B。

$ free -h

检查系统中可用的磁盘存储

由于交换文件会占用系统存储空间,因此我们需要确保硬盘驱动器中有足够的存储空间。 如果没有,那么您应该升级物理内存而不是维护交换空间。 由于交换空间是硬盘驱动器的一部分,因此与物理内存相比,它的读写速度较慢。 使用以下命令查看设备存储或硬盘的记录。

$ df -h

在 Mounted on 部分的上述输出中,搜索作为我们的系统磁盘的 Base dir (/)。 在输出中,驱动器中仍有 12 GB 的可用空间。

在系统中创建交换文件

交换文件是使用磁盘空间来维护系统中交换空间的文件。 我们将使用 分配 命令以及用于确定文件大小(以字节为单位)的 -l 标志。 fallocate 命令将使用命令中提到的特定文件大小的预分配文件创建文件。 分配交换文件大小是基于个人喜好或需要,但如果物理内存小于 2 GB,建议将交换文件大小设置为物理内存的两倍。

$ sudo fallocate -l 2G /pagefile

在这里,我们可以看到交换文件是在基本目录 (/) 中创建的,其页面文件名为初始大小为 2 GB。

现在更改页面文件的权限,使其只能由唯一的 root 用户访问。 为此执行:

$ sudo chmod 600 /pagefile

标记并启用交换空间。

创建并更改页面文件的权限后,我们需要使用 mkswap 命令将该文件设置为交换空间。

$ sudo mkswap /pagefile

然后,使用我们的系统将使用的 swapon 命令启用它。

$ sudo swapon /pagefile

将交换文件设置为永久

到目前为止,我们已经为当前会话设置了交换空间,如果我们重新启动系统,交换空间的实例将消失。 要设置交换文件永久,只需执行以下命令。 在命令中,我们打印交换配置,然后使用 tee 命令将输出附加到 fstab,或者您可以简单地打开 fstab 文件并复制粘贴配置。

$ echo '/pagefile none swap sw 0 0' | sudo tee -a /etc/fstab

现在检查是否已分配交换空间。

管理交换价值

Swappiness 是一个 Linux 内核特性,它的值从 0 到 100,它决定了系统使用交换空间的频率或多少。 默认情况下,ubuntu 将 swappiness 值确定为 60。随着 swappiness 值的增加,更激进的系统开始使用交换空间。 要检查 swappiness 值,请执行以下命令。

$ cat /proc/sys/vm/swappiness

对于具有 swappiness 值的本地 Linux 系统可能没问题,但在服务器的情况下,它的值必须尽可能小。 要更改 swappiness 值临时运行:

$ sudo sysctl vm.swappiness=8

为了在下次重新启动时保持 swappiness 值,我们在 /etc/sysctl.conf 文件。

vm.swappiness=8

虽然,swappiness 值取决于系统的工作负载和物理内存使用量。

结论

在本文中,我们将学习如何在 ubuntu 系统中添加和维护交换空间。 我试图使措辞尽可能简单。 我希望你喜欢它。