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

上次更新时间:2020 年 8 月 27 日

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

简短描述

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

1.    计算交换空间大小。

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

3.    设置交换区域。

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

 

解决方法

计算交换空间大小

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

系统 RAM 的容量 建议的交换空间
2GB 或更少的 RAM 2 倍的 RAM 量,但不得少于 32MB
大于 2GB 但小于 32GB 的 RAM 4 GB + (RAM - 2 GB)
32GB 或更多的 RAM 1 倍的 RAM 量

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

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 

这篇文章对您有帮助吗?


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