我正在尝试为我的 ECS 集群创建一个强大的自动缩放过程,但在解决 CpuUtilization 指标时遇到了问题。我已打开 1 分钟分辨率的“详细指标”,但无法获得良好的缩放结果。我正在部署一个大约需要 1.5 秒来推断的 ML 模型。我没有面临任何内存瓶颈,因此,我使用 CpuUtilization 进行扩展。
我需要快速扩展,因为当请求开始堆积时,响应时间很容易达到 3-5 秒。目前,启用了“详细指标”。扩展时间大约需要 3-5 分钟才能开始,因为要检查 3 个数据点的 1 分钟资源指标。如果我有 5-10 秒的分辨率指标,那么我可以在 30 秒内查看 6 个数据点并更快地开始横向扩展工作。
我尝试使用此博客中的 Lambda、StepFunctions 和 EventBridge 。但是,我无法获得 CpuUtilization 或 MemoryUtilization,只有任务、服务和容器计数。
有没有办法直接从 ECS 获取 Cpu 和内存指标?我知道我们可以使用cloudwatch.get_metric_statistics()。但是,我们只能获取报告给 CloudWatch 的数据点。所以,没用。