space 个 aws ecs 实例 运行
aws ecs instances running out of space
从今天早上开始,我在更新 AWS ECS 中的服务时遇到了麻烦。任务无法启动。失败的任务显示此错误:
open /var/lib/docker/devicemapper/metadata/.tmp928855886: no space left on device
我检查了磁盘 space 并且有。
/dev/nvme0n1p1 7,8G 5,6G 2,2G 73% /
然后我查看了inodes的使用情况,发现100%都被使用了:
/dev/nvme0n1p1 524288 524288 0 100% /
缩小搜索范围我发现 Docker 卷是使用 inode 的卷。
我使用的是标准 Centos AMI。
这是否意味着 ECS 集群上可以 运行 的服务数量有上限? (此时我运行宁18个服务)
这个可以解决吗?目前无法更新。
提前致谢
您需要在 EC2 主机上调整以下环境变量:
ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION
ECS_IMAGE_CLEANUP_INTERVAL
ECS_IMAGE_MINIMUM_CLEANUP_AGE
ECS_NUM_IMAGES_DELETE_PER_CYCLE
您可以在此处找到有关所有这些设置的完整文档:https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html
默认行为是每 30 分钟检查一次,并且仅删除 5 个超过 1 小时且未使用的图像。如果您想更频繁地清理更多图像,可以使此行为更具侵略性。
另一件需要考虑保存的事情 space 与其将图像层压缩在一起,不如为不同的图像和图像版本使用一个共同的共享基础图像层。这可能会产生巨大的差异,因为如果您有 10 个不同的图像,每个图像大小为 1 GB,则占用 10 GB space。但是,如果您有一个 1 GB 的基础图像层,然后是 10 个只有几 MB 大小的小应用程序层,只占用略多于 1 GB 的磁盘 space.
从今天早上开始,我在更新 AWS ECS 中的服务时遇到了麻烦。任务无法启动。失败的任务显示此错误:
open /var/lib/docker/devicemapper/metadata/.tmp928855886: no space left on device
我检查了磁盘 space 并且有。
/dev/nvme0n1p1 7,8G 5,6G 2,2G 73% /
然后我查看了inodes的使用情况,发现100%都被使用了:
/dev/nvme0n1p1 524288 524288 0 100% /
缩小搜索范围我发现 Docker 卷是使用 inode 的卷。
我使用的是标准 Centos AMI。
这是否意味着 ECS 集群上可以 运行 的服务数量有上限? (此时我运行宁18个服务)
这个可以解决吗?目前无法更新。
提前致谢
您需要在 EC2 主机上调整以下环境变量:
ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION
ECS_IMAGE_CLEANUP_INTERVAL
ECS_IMAGE_MINIMUM_CLEANUP_AGE
ECS_NUM_IMAGES_DELETE_PER_CYCLE
您可以在此处找到有关所有这些设置的完整文档:https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html
默认行为是每 30 分钟检查一次,并且仅删除 5 个超过 1 小时且未使用的图像。如果您想更频繁地清理更多图像,可以使此行为更具侵略性。
另一件需要考虑保存的事情 space 与其将图像层压缩在一起,不如为不同的图像和图像版本使用一个共同的共享基础图像层。这可能会产生巨大的差异,因为如果您有 10 个不同的图像,每个图像大小为 1 GB,则占用 10 GB space。但是,如果您有一个 1 GB 的基础图像层,然后是 10 个只有几 MB 大小的小应用程序层,只占用略多于 1 GB 的磁盘 space.