我想分配内存以便在 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