如何使用硬盘上的分区分配内存充当 Amazon EC2 实例上的交换空间?

上次更新日期:2022 年 2 月 21 日

我想要使用硬盘上的分区分配内存充当 Amazon Elastic Compute Cloud (Amazon EC2) 实例上的交换空间。该如何操作?

简短描述

要分配内存充当交换空间,请执行以下操作:

1.    计算交换空间大小。

2.    在硬盘上创建一个分区作为交换空间。

3.    设置交换区域。

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

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

解决方法

计算交换空间大小

交换空间应该等于 2 倍物理 RAM,容量最高为 2GB 的物理 RAM。对于大于 2GB 的任何容量,再增加一个 1 个物理 RAM。交换空间不应少于 32 MB。

系统 RAM 的量 建议的交换空间
2 GiB 的 RAM 或更少 2 倍的 RAM 量,但永远不能少于 32 MB
超过 2 GiB 的 RAM,但小于 64 GiB 0.5 倍的 RAM 量
超过 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.    输入交换文件的大小。在本示例中,RAM 为 2GB,创建的分区为 4GB(指定为 +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.    在重新启动之后使交换内存分配永久不变:

$ sudo vim /etc/fstab
$ /dev/xvda2 none swap sw 0 0
$ reboot

这篇文章对您有帮助吗?


您是否需要账单或技术支持?