我的 EC2 实例内存不足,我认为添加交换可能会有所帮助
我不确定是 EC2 内存不足还是容器内存不足,以下是 AWS get-instance-screenshot 提供的 EC2 屏幕截图
医生在https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-swap.html说我们可以添加交换。所以我将以下内容添加到任务定义并部署它
"linuxParameters": {
"capabilities": null,
"sharedMemorySize": null,
"tmpfs": null,
"devices": null,
"maxSwap": 2048,
"swappiness": 60,
"initProcessEnabled": null
},
"memory": null,
"memoryReservation": 512,
我登录到 ec2 主机并查看顶部,Swap
主机和容器中均未分配(总计 0 个,可用 0 个)。
我错过了什么?
答案1
在您链接到的文档页面的底部有这样一条声明:
笔记
默认情况下,针对 Amazon ECS 优化的 AMI 未启用交换。您必须在实例上启用交换才能使用此功能。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例)中的实例存储交换卷或如何使用交换文件分配内存以用作 Amazon EC2 实例中的交换空间?。
您是否按照所提供的链接中的说明在您的实例上配置交换(而不仅仅是在任务定义中):
另请注意,最佳实践建议仅使用临时实例存储作为交换空间(而不是 EBS 卷)。