Azure 指标观察到的度量值与自动缩放的实际度量值对比

问题描述 投票:0回答:1

我有一个自动伸缩规则,不会启动。

出规则表示如果CPU百分比高于70%,则添加一个实例。时间持续时间为2分钟,冷却期为2分钟。

当我建立一个Metrics图表来比较实际的CPU百分比与观察到的情况时,我可以清楚地看到我的CPU有峰值,但观察到的似乎是在较长的时间段内的平均值,我不知道为什么?我可以在我的缩放规则中使用什么设置来控制我的规则平均的时间段?

enter image description here

azure azure-web-sites
1个回答
1
投票

谢谢你的提问! 你可能想调查 自动秤的最佳实践

另外,了解拍打过程也很重要。

建议根据实际情况慎重选择不同的阈值来进行scale-out和scale-in的设置,不建议像下面的例子那样,用相同或非常相似的阈值来进行out和in条件下的autoscale设置。

以此为例:

当线程数<=600时增加实例1个计数当线程数>=600时减少实例1个计数。

现在请考虑以下过程。

假设一开始有两个实例 然后每个实例的平均线程数增加到625个。

自动伸缩增加第三个实例。

接下来,假设整个实例的平均线程数下降到575。

在缩减规模之前,autoscale会试着估计如果缩减规模,最终的状态会是什么。例如,575 x 3(当前实例数)=1,725 2(缩减时的最终实例数)=862.5个线程。这意味着自动缩放即使在它缩进后,如果平均线程数保持不变甚至只下降了一小部分,它也必须立即再次缩进。然而,如果它再次放大,整个过程就会重复,导致无限循环。

为了避免这种情况(术语为 "flapping"),autoscale根本不会缩小规模。相反,它跳过并在下次服务的作业执行时再次重新评估条件。这可能会让很多人感到困惑,因为当平均线程数为575时,自动缩放不会出现工作。

在scale-in期间估计是为了避免 "flapping "情况,即scale-in和scale-out操作不断地来回。当您为scale-out和in选择相同的阈值时,请记住这种行为。

我们建议在scale-out和in阈值之间选择一个足够的余量。作为一个例子,考虑以下更好的规则组合。

当CPU% >=80时,增加1个计数的实例。

当CPU% <=60时,减少1个实例。

此外,还有冷却期,这意味着如果发生了缩减规模的操作,即使规则为真(例如--CPU仍然很高),自动缩减规模规则也不会触发。如果冷却时间为2分钟,这意味着如果发生了缩减规模的操作,在接下来的2分钟内,即使规则为真,也不会因为冷却时间而被触发。

© www.soinside.com 2019 - 2024. All rights reserved.