如何在 Ubuntu 中更改交换大小如何在 Ubuntu 中更改交换大小如何在 Ubuntu 中更改交换大小如何在 Ubuntu 中更改交换大小
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Ubuntu 中更改交换大小

在本指南中,我们将演示如何在 Ubuntu 22.04 中更改交换大小。

先决条件:

要执行本指南中的步骤,您需要以下组件:

  • 正确配置的 Ubuntu 系统。为了进行测试,您可以使用 VirtualBox 在虚拟机上安装 Ubuntu。

  • 访问可以执行 sudo 命令的非 root 用户。

Linux 中的交换文件

Linux 内核将机器的 RAM 划分为称为“页面”的块。每当将页面复制到辅助存储设备(大多数情况下为硬盘或 SSD)上的预配置空间时,这称为“交换”。预先配置的专用空间称为“交换空间”。

物理内存 (RAM) 和交换空间的总量称为“虚拟”内存。

是否需要交换?

需要交换的原因有几个:

  • 当需要的内存多于物理可用内存时,交换不太重要的页面可以为需要更多内存的进程释放更多内存。

  • 程序启动期间使用的大部分页面可能很少被使用。交换这些页面可以为其他应用程序释放更多内存。

  • 如果没有分配交换空间,如果RAM空间被占满,可能会导致系统崩溃,特别是RAM空间不足的系统。

然而,交换也有其自身的缺点:

  • 与 RAM 相比,辅助存储(硬盘、SSD 等)速度非常慢。从长远来看,RAM 访问速度以纳秒为单位,而磁盘访问速度以毫秒为单位。

  • 由于读/写速度的差异,交换是一个非常慢的过程。当发生大量交换时,最终会减慢系统速度。

交换空间的类型

您将在 Linux 中遇到两种类型的交换空间:

  • 专用交换分区 – 那里不能存储其他文件。

  • 交换文件 – 这些文件可以位于文件系统中的任何位置。

根据可用 RAM 空间的不同,交换空间的大小可能会有所不同。这里有几个例子:

Ubuntu 中的交换文件

Ubuntu 一般使用专用的交换分区来进行交换。通常,该分区是在安装过程中创建的。但是,我们可以随意创建和调整交换文件。

列出交换空间

以下命令显示当前配置的所有交换空间:

$ swapon

该列表包含所有交换空间,包括分区和交换文件。

创建交换文件

与交换分区相比,交换文件的一个主要优点是可以轻松更改文件大小,从而在不触及磁盘分区的情况下更改交换空间量。在本节中,我们创建一个新的交换文件并将其添加到当前交换池中。

首先,使用以下命令创建一个空白文件:

$ sudo dd if=/dev/zero of=/new_swap bs=1M count=2048

这里 :

  • 文件大小计算为1M X 2048=2G。

  • 要创建不同大小的文件,请相应地更改 count 参数的值。

  • /dev/zero是Linux系统中的一个特殊的块设备,每次读取时都会输出零字节。

  • 虽然我们可以使用fallocate等其他工具来创建文件,但在某些情况下,它可能会导致问题。这篇 AskUbuntu 文章对此进行了更深入的讨论。

接下来,我们需要使用以下命令设置正确的文件权限:

$ sudo chmod 600 /new_swap

现在,我们需要使用以下命令将文件格式化为交换:

$ sudo mkswap /new_swap

最后,我们可以将文件添加到交换池中。

$ sudo swapon /new_swap

如果操作成功,新的交换文件应出现在交换空间列表中。

$ swapon

请注意,此操作只是暂时的。重新启动后,交换文件将不再使用。为了使其成为永久更改,我们必须使用以下条目更新 /etc/fstab 表:

$ /new_swap swap swap defaults 0 0

检查可用交换空间

以下命令打印内存和交换空间的使用情况:

$ sudo free -h

删除交换文件

要删除交换文件,我们首先必须确保它未被使用。以下命令停用交换文件:

$ sudo swapoff -v /<swap_file>

检查活动交换空间列表以确认更改。

$ swapon

如果交换文件在 /etc/fstab 中声明,您还必须删除该条目。现在,交换文件可以安全删除了。使用以下命令删除它:

$ sudo rm /<swap_file>

更改交换大小

根据交换空间类型(分区或文件),更改交换大小的过程可能会有所不同。

更改交换分区的大小

仅当分区后面有未分配的空间时,才可以对其进行扩展。否则,唯一的其他调整大小选项是缩小分区。它也适用于交换分区。

如果您使用的是 GNOME 桌面,“磁盘”应用程序可以提供对情况的深入了解。

或者,我们可以使用GParted来可视化它。

正如您所看到的,交换分区紧邻该系统中的根分区。这没有留下扩展交换分区的空间。

但是,可以执行缩小和重新格式化操作。了解有关使用 fdisk 或 GParted 管理分区的更多信息。还需要 resize2fs 命令根据调整大小的分区来调整现有文件系统的大小。

更改交换文件的大小

要操作交换文件,我们首先需要将其从交换池中删除。运行以下命令:

$ sudo swapoff /new_swap

现在,重新运行 dd 命令以增加文件的大小:

$ sudo dd if=/dev/zero of=/new_swap bs=1G count=2 oflag=append conv=notrunc

在这里,我们为交换文件添加了 2GB 的空间。接下来,我们使用以下命令将文件重新格式化为交换:

$ sudo mkswap /new_swap

最后,我们可以启用交换:

$ sudo swapon /new_swap
$ swapon

请注意,在某些情况下,尝试禁用交换文件可能会导致类似“交换失败:无法分配内存”的错误。在这种情况下,我们执行以下操作:

  • 创建一个具有更大空间的新交换文件。

  • 将更大的交换连接到系统。

  • 删除旧的、较小的交换文件。

  • 从 /etc/fstab 中删除旧的交换文件条目(如果适用)。

结论

我们讨论了有关在 Ubuntu 中管理交换空间的深入演示。我们讨论了各种类型的交换空间。我们学习了调整交换分区的大小以及如何使用交换文件(创建、删除和调整大小)。

有兴趣掌握 Ubuntu 吗?查看 Ubuntu 子类别,其中包含大量有关调整 Ubuntu 系统和使用各种工具的指南。

快乐计算!

©2015-2025 艾丽卡 support@alaica.com