使用AWS re:Post即您表示您同意 AWS re:Post 使用条款

如何在硬盘上使用分区在 Amazon EC2 实例上分配内存作为交换空间?

2 分钟阅读
0

我想在硬盘上使用分区在 Amazon Elastic Compute Cloud(Amazon EC2)实例上分配内存来作为交换空间。

简短描述

要分配内存作为交换空间,请完成以下步骤:

  1. 计算交换空间大小。
  2. 在硬盘上创建分区作为交换空间。
  3. 设置交换区域。

您还可以创建交换文件来用作交换空间。有关详细信息,请参阅如何分配内存以在 Amazon EC2 实例中用作交换文件?

**注意:**实例会在 RAM 量已满时使用交换空间。您可以将交换空间用于 RAM 量较少的实例,但不能替代 RAM 较多的实例。由于交换空间位于实例的硬盘上,因此与实际 RAM 相比,性能较慢。要获得更多或更快的内存,请增加实例大小。

有关交换空间的详细信息,请参阅 Red Hat 网站上的交换空间

解决方法

计算交换空间大小

最佳做法是交换空间等于物理 RAM 的两倍,物理 RAM 最大 2 GB。如果容量超过 2 GB,请额外添加 0.5 倍的物理 RAM。不允许交换空间降至 32 MB 以下,这也是一种最佳做法。请参阅下表来计算您的交换空间大小:

系统 RAM 容量推荐交换空间
2 GiB 或以下RAM 容量的 2 倍,不低于 32 MB
大于 2 GiB 但小于 64 GiBRAM 容量的 0.5 倍
64 GiB 以上取决于工作负载或用例

在硬盘驱动器上创建分区作为交换空间

要在硬盘上创建分区作为交换空间,请完成以下步骤:

  1. 使用 AWS Systems Manager 或 SSH 登录实例。

  2. 列出可用卷:

    sudo fdisk -l
  3. 从列表中选择要进行分区的设备。在此示例中,使用设备 /dev/xvda

    sudo fdisk /dev/xvda
  4. 创建新分区:

    \-> n
  5. 选择分区类型。在此示例中,使用“主要”:

    \-> p
  6. 分配分区编号。在此示例中,使用分区 2

    \-> 2
  7. Enter 接受“First sector”(第一扇区)默认值。

  8. 输入交换文件的大小。在此示例中,有 2 GB RAM。您创建的分区为 4 GB(指定为 +4G)。

    \-> +4G
  9. 保存并退出:

    \-> w

设置交换区域

要设置交换区域,请完成以下步骤:

  1. 使用 partprobe 命令通知操作系统进行了分区表更改:

    partprobe
  2. 使用您在前面的步骤中创建的交换分区设置 Linux 交换区域。在以下示例中,交换分区为 /dev/xvda2

    mkswap /dev/xvda2
  3. 添加分区作为交换空间:

    sudo swapon /dev/xvda2
  4. 显示当前交换空间:

    sudo swapon -s

    输出结果类似于以下示例:

    Filename                  Type        Size           Used    Priority/dev/xvda2                partition   4194300        0       -1
  5. 重新启动后,完成以下步骤,让交换内存分配成为永久配置:
    通过 blkid 命令打印 UUID:

    sudo blkid

    从前面的输出中复制交换分区的 UUID。使用文本编辑器(如 vi 或 nano)将以下内容添加到 /etc/fstab 文件中:

    UUID=xxxxxxx none swap SW 0 0
  6. 保存文件,然后执行重启。

重启操作系统后,使用 free -h 命令验证交换内存分配是否是一直如此。

AWS 官方
AWS 官方已更新 3 个月前