如何在 Ubuntu 中更改交换大小
在本指南中,我们将演示如何在 Ubuntu 22.04 中更改交换大小。
先决条件:
要执行本指南中的步骤,您需要以下组件:
正确配置的 Ubuntu 系统。为了进行测试,您可以使用 VirtualBox 在虚拟机上安装 Ubuntu。
访问可以执行 sudo 命令的非 root 用户。
Linux 中的交换文件
Linux 内核将机器的 RAM 划分为称为“页面”的块。每当将页面复制到辅助存储设备(大多数情况下为硬盘或 SSD)上的预配置空间时,这称为“交换”。预先配置的专用空间称为“交换空间”。
物理内存 (RAM) 和交换空间的总量称为“虚拟”内存。
是否需要交换?
需要交换的原因有几个:
当需要的内存多于物理可用内存时,交换不太重要的页面可以为需要更多内存的进程释放更多内存。
程序启动期间使用的大部分页面可能很少被使用。交换这些页面可以为其他应用程序释放更多内存。
如果没有分配交换空间,如果RAM空间被占满,可能会导致系统崩溃,特别是RAM空间不足的系统。
然而,交换也有其自身的缺点:
与 RAM 相比,辅助存储(硬盘、SSD 等)速度非常慢。从长远来看,RAM 访问速度以纳秒为单位,而磁盘访问速度以毫秒为单位。
由于读/写速度的差异,交换是一个非常慢的过程。当发生大量交换时,最终会减慢系统速度。
交换空间的类型
您将在 Linux 中遇到两种类型的交换空间:
专用交换分区 – 那里不能存储其他文件。
交换文件 – 这些文件可以位于文件系统中的任何位置。
根据可用 RAM 空间的不同,交换空间的大小可能会有所不同。这里有几个例子:
Ubuntu 中的交换文件
Ubuntu 一般使用专用的交换分区来进行交换。通常,该分区是在安装过程中创建的。但是,我们可以随意创建和调整交换文件。
列出交换空间
以下命令显示当前配置的所有交换空间:
该列表包含所有交换空间,包括分区和交换文件。
创建交换文件
与交换分区相比,交换文件的一个主要优点是可以轻松更改文件大小,从而在不触及磁盘分区的情况下更改交换空间量。在本节中,我们创建一个新的交换文件并将其添加到当前交换池中。
首先,使用以下命令创建一个空白文件:
这里 :
文件大小计算为1M X 2048=2G。
要创建不同大小的文件,请相应地更改 count 参数的值。
/dev/zero是Linux系统中的一个特殊的块设备,每次读取时都会输出零字节。
虽然我们可以使用fallocate等其他工具来创建文件,但在某些情况下,它可能会导致问题。这篇 AskUbuntu 文章对此进行了更深入的讨论。
接下来,我们需要使用以下命令设置正确的文件权限:
现在,我们需要使用以下命令将文件格式化为交换:
最后,我们可以将文件添加到交换池中。
如果操作成功,新的交换文件应出现在交换空间列表中。
请注意,此操作只是暂时的。重新启动后,交换文件将不再使用。为了使其成为永久更改,我们必须使用以下条目更新 /etc/fstab 表:
检查可用交换空间
以下命令打印内存和交换空间的使用情况:
删除交换文件
要删除交换文件,我们首先必须确保它未被使用。以下命令停用交换文件:
检查活动交换空间列表以确认更改。
如果交换文件在 /etc/fstab 中声明,您还必须删除该条目。现在,交换文件可以安全删除了。使用以下命令删除它:
更改交换大小
根据交换空间类型(分区或文件),更改交换大小的过程可能会有所不同。
更改交换分区的大小
仅当分区后面有未分配的空间时,才可以对其进行扩展。否则,唯一的其他调整大小选项是缩小分区。它也适用于交换分区。
如果您使用的是 GNOME 桌面,“磁盘”应用程序可以提供对情况的深入了解。
或者,我们可以使用GParted来可视化它。
正如您所看到的,交换分区紧邻该系统中的根分区。这没有留下扩展交换分区的空间。
但是,可以执行缩小和重新格式化操作。了解有关使用 fdisk 或 GParted 管理分区的更多信息。还需要 resize2fs 命令根据调整大小的分区来调整现有文件系统的大小。
更改交换文件的大小
要操作交换文件,我们首先需要将其从交换池中删除。运行以下命令:
现在,重新运行 dd 命令以增加文件的大小:
在这里,我们为交换文件添加了 2GB 的空间。接下来,我们使用以下命令将文件重新格式化为交换:
最后,我们可以启用交换:
请注意,在某些情况下,尝试禁用交换文件可能会导致类似“交换失败:无法分配内存”的错误。在这种情况下,我们执行以下操作:
创建一个具有更大空间的新交换文件。
将更大的交换连接到系统。
删除旧的、较小的交换文件。
从 /etc/fstab 中删除旧的交换文件条目(如果适用)。
结论
我们讨论了有关在 Ubuntu 中管理交换空间的深入演示。我们讨论了各种类型的交换空间。我们学习了调整交换分区的大小以及如何使用交换文件(创建、删除和调整大小)。
有兴趣掌握 Ubuntu 吗?查看 Ubuntu 子类别,其中包含大量有关调整 Ubuntu 系统和使用各种工具的指南。
快乐计算!