【发布时间】:2020-10-19 09:36:38
【问题描述】:
我得到了一个 AWS 环境来照顾,它在 EC2 实例上运行 ECS,并使用 ECS 内存预留配置了扩展。该系统最初是在 Cluster Autoscaling 普遍可用之前运行的,因此它只是使用 cloudwatch 指标来横向扩展和缩减。据我所知,它遵循基本的 AWS 设计。
- EC2 有一个自动缩放组,允许从 1 到 5 个实例进行缩放,其中 1 是所需的状态。
- 有 1 个集群服务正在运行,配置了 6 个任务。
- 其中 5 个任务被配置为最多运行 2 个任务副本,其中 1 个是所需的副本,另一个被设置为最多 1 个。
- 任务配置了 MemoryReservation(软限制)数字,但没有配置 Memory(硬限制)。
- 任务主要运行 Java。
- 最高的内存预留设置为大约 200MB,大部分都在这个数字附近。
- 横向扩展规则基于 85% 的 MemoryReservation。
- Docker 统计数据显示,大多数任务正在运行大约 300MB,有些超过 600MB。
- 实例大小有 4GB 的 RAM。
如果最大预留空间是 2GB,即使任务在现实中消耗的空间更像 3GB,我是否相信永远不会调用横向扩展规则,因为 2GB 是可用 RAM 的 50%?我是否需要将内存预留增加到更实际的值?
另外,如果它只运行一个 EC2 实例,即使我将 MemoryReservation 数字增加到更现实的值,我的想法是否正确,只是因为没有理论上的空间来启动另一个任务,它不会启动第二个 EC2 实例自动地?刚刚从我在搜索时阅读的不同文章中挑选出来的。
谢谢
【问题讨论】:
标签: amazon-web-services amazon-ec2 amazon-ecs autoscaling