如何使用交换文件分配内存以便在 Amazon EC2 实例中用作交换空间?

1 分钟阅读
0

我想分配内存以便在 Amazon Elastic Compute Cloud(Amazon EC2)实例中用作交换文件。该怎么办?

简短描述

当物理 RAM 已在使用时,Amazon EC2 实例使用交换空间作为物理 RAM 的短期替代工具。

未处于活动使用状态或不像其他数据或指令那样急需的 RAM 内容可以临时分页到一个交换文件中。这样可以释放 RAM,用于满足更紧迫的需求。

您也可以在分区上创建交换空间。有关更多信息,请参阅如何在硬盘上使用分区在 Amazon EC2 实例上分配内存作为交换空间?

**注意:**最佳做法是仅在临时存储实例存储卷上创建交换空间。

解决方法

在开始执行此解决方法之前,请验证您的文件系统是否支持使用交换文件
注意: 支持大多数常见的文件系统(ext3、ext4、XFS)。对于其他文件系统,这可能不一样。最佳做法是查看最新的文件系统文档。

计算交换空间大小

有关如何计算交换空间大小的信息,请参阅以下内容:

创建交换文件

1.    使用 dd 命令在根文件系统上创建交换文件。在该命令中,bs 是数据块大小,count 是数据块的数量。交换文件的大小是 dd 命令中的数据块大小选项乘以计数选项。调整这些值来确定所需的交换文件大小。

您指定的数据块大小应小于实例上的可用内存,否则您会收到“memory exhausted”错误。

在此 dd 命令示例中,交换文件大小为 4 GB(128 MB x 32):

$ sudo dd if=/dev/zero of=/swapfile bs=128M count=32

2.    更新交换文件的读取权限和写入权限:

$ sudo chmod 600 /swapfile

3.    设置 Linux 交换区域:

$ sudo mkswap /swapfile

4.    将交换文件添加到交换空间,确保交换文件处于即时可用状态:

$ sudo swapon /swapfile

5.    验证该流程是否执行成功:

$ sudo swapon -s

6.    编辑 /etc/fstab 文件,确保在启动时启动交换文件。

在编辑器中打开文件:

$ sudo vi /etc/fstab

在文件末尾添加以下新行,保存文件,然后退出:

/swapfile swap swap defaults 0 0

相关信息

RHEL - Adding swap space

AWS 官方
AWS 官方已更新 2 年前