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

2 分钟阅读
0

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

简短描述

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

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

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

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

解决方法

计算交换空间大小

最佳做法是交换空间为物理 RAM 的两倍,物理 RAM 最大 2 GB。如果量超出 2 GB,额外添加 1 个物理 RAM。最佳做法是始终保持交换空间不低于 32 MB。

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

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

1.    使用 SSH 登录实例。

2.    列出可用卷:

$ sudo fdisk -l

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

$ sudo fdisk /dev/xvda

4.    创建新分区:

\-> n

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

\-> p

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

\-> 2

7.    按 Enter 接受“第一区域”默认值。

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 命令验证交换内存分配是否是一直如此。

相关信息

交换空间(在 Red Hat 网站上)

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