如何使用交换文件分配内存充当 Amazon EC2 实例中的交换空间?

上次更新日期:2021 年 3 月 9 日

我想要分配内存充当 Amazon Elastic Compute Cloud (Amazon EC2) 实例中的交换文件。该怎么做?

简短描述

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

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

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

注意:最佳实践是只在临时存储实例存储卷上创建交换空间。

解决方法

注意:在开始执行该解决方法之前,请验证您的文件系统是否支持使用交换文件

计算交换空间大小

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

创建交换文件

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

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

在此示例 dd 命令中,交换文件为 4GB (128MB 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

这篇文章对您有帮助吗?


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