【问题标题】:Azure metrics observed metric value vs actual metric value for Auto ScalingAzure 指标观察到的指标值与 Auto Scaling 的实际指标值
【发布时间】:2020-05-06 22:03:10
【问题描述】:

我有一个不会触发的自动缩放规则。

out 规则表明如果 CPU Percentage 高于 70%,则添加一个实例。持续时间为2分钟,冷静期为2分钟。

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

【问题讨论】:

    标签: azure azure-web-app-service


    【解决方案1】:

    感谢提问!你可能想调查Best practices for Autoscale

    此外,了解摆动过程也很重要:

    建议根据实际情况慎重选择不同的scale-out和scale-in阈值,不推荐像下例那样的out和in条件阈值相同或非常相似的autoscale设置:

    以此为例:

    当线程数 = 600 时将实例数减少 1

    现在请考虑以下过程:

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

    自动缩放添加第三个实例。

    接下来,假设跨实例的平均线程数降至 575。

    在缩小之前,自动缩放会尝试估计缩小后的最终状态。例如,575 x 3(当前实例数)= 1,725 / 2(缩小时的最终实例数)= 862.5 个线程。这意味着如果平均线程数保持不变或什至仅下降少量,自动缩放即使在缩小后也必须立即再次向外扩展。但是,如果再次放大,整个过程会重复,导致无限循环。

    为避免这种情况(称为“抖动”),自动缩放根本不会缩小。相反,它会在下次执行服务作业时跳过并重新评估条件。这可能会让很多人感到困惑,因为当平均线程数为 575 时,自动缩放似乎不起作用。

    在缩减期间进行估计旨在避免“摇摆不定”的情况,即缩减和缩减操作不断来回进行。当您为向外扩展和向内选择相同的阈值时,请记住此行为。

    我们建议在扩展阈值和输入阈值之间选择足够的余量。例如,考虑以下更好的规则组合。

    当 CPU% >= 80 时将实例数增加 1

    当 CPU%

    为此添加冷却时间,这意味着如果发生缩减/放大操作,即使规则为真(例如 - CPU 保持高位),自动扩展规则也不会触发。如果冷却时间为 2 分钟,则表示如果发生了缩减/放大操作,则在接下来的 2 分钟内,即使规则为真,也不会因为冷却时间而触发。

    【讨论】:

    • 感谢您的回复。我已经查看了该文档,这很好。我确实理解扑动问题。我的设置几乎与您的设置完全相同,我认为我的最高值是 70,最低值是 50 或类似的值。我担心的是,在生产中,上面的红色条(观察到的)与蓝色条非常接近。在我的其他应用程序服务计划中,它几乎没有移动。为什么?我检查并检查,设置似乎完全相同。我的采样时间最初与 prod - 5 和冷却 5 中的完全相同。一些图表,然后我将其更改为 2 和相同的问题。
    猜你喜欢
    • 2021-10-12
    • 1970-01-01
    • 1970-01-01
    • 2014-10-14
    • 1970-01-01
    • 1970-01-01
    • 2018-05-10
    • 2012-04-14
    • 2018-08-10
    相关资源
    最近更新 更多