Fargate 扩大规模始终如一,但缩小规模并不始终如一
Posted
技术标签:
【中文标题】Fargate 扩大规模始终如一,但缩小规模并不始终如一【英文标题】:Fargate scaling up works consistently but scaling down is not working consistently 【发布时间】:2021-05-19 12:09:33 【问题描述】:我们有一个针对基于 CPU 和内存的 ecs 容器化应用程序配置的目标跟踪自动缩放的简单示例。我们有 4 个由以下代码自动配置的警报(2 个 CPU - 1 个放大,1 个缩小,2 个内存,1 个放大和 1 个缩小)
我们看到,当触发自动扩展的 cloudwatch 警报时,我们的 ecs 服务任务会立即自动扩展(在 ecs 方面,有事件立即出现,将所需的计数向上设置)。 但是,当触发自动缩减的 cloudwatch 警报时,我们会观察到不同的行为:
-
有时 ecs 服务任务会立即缩减(缩减警报会立即响起,并在 ecs 端立即设置所需的向下计数事件)
有时 ecs 服务任务会延迟缩减,例如7-15 分钟后,甚至几个小时后(缩小警报立即响起,但在 ecs 端设置所需的向下计数事件延迟 7-15 分钟,或几个小时后)
有时 ecs 服务任务根本没有缩减(我们在周末看到缩减警报被触发,但 ecs 服务任务从未在 48 小时内缩减并且设置所需的向下计数事件从未到达 ecs 端)
在 cloudwatch 警报方面,我们观察到警报总是在预期的放大和缩小时响起,我们认为问题存在于 ecs 方面。
自动缩放代码如下:
resource aws_appautoscaling_target this
max_capacity = 5
min_capacity = 1
resource_id = "service/dev/service1"
scalable_dimension = "ecs:service:DesiredCount"
service_namespace = "ecs"
resource aws_appautoscaling_policy memory
name = "memory"
policy_type = "TargetTrackingScaling"
resource_id = aws_appautoscaling_target.this.resource_id
scalable_dimension = aws_appautoscaling_target.this.scalable_dimension
service_namespace = aws_appautoscaling_target.this.service_namespace
target_tracking_scaling_policy_configuration
predefined_metric_specification
predefined_metric_type = "ECSServiceAverageMemoryUtilization"
scale_in_cooldown = 60
scale_out_cooldown = 60
target_value = 50
resource aws_appautoscaling_policy cpu
name = "cpu"
policy_type = "TargetTrackingScaling"
resource_id = aws_appautoscaling_target.this.resource_id
scalable_dimension = aws_appautoscaling_target.this.scalable_dimension
service_namespace = aws_appautoscaling_target.this.service_namespace
target_tracking_scaling_policy_configuration
predefined_metric_specification
predefined_metric_type = "ECSServiceAverageCPUUtilization"
scale_in_cooldown = 60
scale_out_cooldown = 60
target_value = 60
有没有人看到这种行为,即 cloudwatch 中的警报正确响起,ecs 服务总是按预期扩大,但并不总是按预期缩小?我们是否在这里遗漏了一些明显的东西?,非常感谢您的帮助
【问题讨论】:
【参考方案1】:检查您的策略配置。当您有多个扩展策略时,它们都必须准备好一起缩减。
如果您的目标是在不活动后缩减规模,您可以尝试在某些策略上禁用缩减以减少缩减变量和/或提高某些策略的目标利用率。如果存在间歇性活动,则可能是给定策略的信号,表明它不应该缩减。它需要持续的低活动才能缩小规模。
【讨论】:
以上是关于Fargate 扩大规模始终如一,但缩小规模并不始终如一的主要内容,如果未能解决你的问题,请参考以下文章
包装行业渠道商分销系统开发方案:提升协同效率,快速扩大渠道规模