【问题标题】:Azure autoscale odd behaviourAzure 自动缩放奇怪的行为
【发布时间】:2016-12-21 23:55:59
【问题描述】:

我有一个应用服务计划,按以下方式扩展:

  • 范围:2-20 个实例
  • CPU > 20%:扩展到 20 个实例
  • CPU

随着时间的推移,我看到的实际实例数如下:

  • 20 个实例
  • (CPU ~ 0%)
  • 缩减到 2 个实例
  • (负载开始:CPU > 50%)
  • 最多 20 个实例(约 5 分钟)
  • (加载完成:CPU ~ 0%)
  • 减少到 15 个实例(约 5 分钟)
  • 减少到 12 个实例(约 5 分钟)
  • 减少到 5 个实例(约 5 分钟)
  • 减少到 2 个实例(约 5 分钟)

如何使其立即扩展到 2 个实例,而无需额外的步骤?

此外,有时,从 2 个实例扩展到 20 个实例会失败,并且 2 个实例仍处于巨大负载状态。是否可以告诉 azure 扩展到尽可能多的实例,而不是在巨大的负载期间给用户留下 2 个实例?

更新:添加比例设置 JSON。

更新:添加比例设置截图。

整体比例设置:

如何扩大规模:

如何缩小:

{
  "id": "...",
  "name": "...",
  "type": "Microsoft.Insights/autoscaleSettings",
  "location": "westus",
  "tags": {
    "$type": "...",
    "...": "Resource"
  },
  "properties": {
    "profiles": [
      {
        "name": "Default",
        "capacity": {
          "minimum": "2",
          "maximum": "20",
          "default": "2"
        },
        "rules": [
          {
            "metricTrigger": {
              "metricName": "CpuPercentage",
              "metricNamespace": "",
              "metricResourceUri": "...",
              "timeGrain": "PT1M",
              "statistic": "Average",
              "timeWindow": "PT5M",
              "timeAggregation": "Maximum",
              "operator": "GreaterThan",
              "threshold": 20
            },
            "scaleAction": {
              "direction": "Increase",
              "type": "ExactCount",
              "value": "20",
              "cooldown": "PT1M"
            }
          },
          {
            "metricTrigger": {
              "metricName": "CpuPercentage",
              "metricNamespace": "",
              "metricResourceUri": "...",
              "timeGrain": "PT1M",
              "statistic": "Average",
              "timeWindow": "PT5M",
              "timeAggregation": "Average",
              "operator": "LessThan",
              "threshold": 15
            },
            "scaleAction": {
              "direction": "Decrease",
              "type": "ExactCount",
              "value": "2",
              "cooldown": "PT1M"
            }
          }
        ]
      }
    ],
    "enabled": true,
    "name": "...",
    "targetResourceUri": "...",
    "notifications": [
      {
        "operation": "Scale",
        "email": {
          "sendToSubscriptionAdministrator": false,
          "sendToSubscriptionCoAdministrators": false,
          "customEmails": [
            "..."
          ]
        },
        "webhooks": null
      }
    ]
  }

【问题讨论】:

    标签: azure azure-web-app-service azure-app-service-plans


    【解决方案1】:

    您可以自定义 Web 应用的自动缩放设置以满足您的要求。

    如果您使用 C#,则可以利用 Azure Monitoring Services Management Library。否则,您也可以使用您使用的语言中的 REST API 来管理自动缩放设置。设置元素的详细说明可以参考https://msdn.microsoft.com/en-us/library/azure/dn510367.aspx

    更多信息请参考https://github.com/Azure/azure-content/blob/master/articles/best-practices-auto-scaling.md

    更新

    根据Use Azure Autoscale的最后一段:

    当您配置多个策略和规则时,它们可能会相互冲突。 Autoscale 使用以下冲突解决规则来确保始终有足够数量的实例在运行:

    • 横向扩展操作始终优先于扩展操作。
    • 当横向扩展操作发生冲突时,启动实例数增加最多的规则优先。
    • 当操作扩展发生冲突时,启动实例数量减少最小的规则优先。

    【讨论】:

    • 谢谢,我之前已经阅读过这份资料。问题实际上是关于 - 为什么 Azure 针对配置进行扩展。在配置中,它要么是 2 个实例,要么是 20 个。实际上——出现了其他数字。
    • 这可能是多个政策和规则的冲突问题。
    • 好吧,我必须规定:一个设置为 20 个实例,另一个设置为 2 个实例。没有规则可以添加/删除 N 个实例,只有这两个规则。我看不出它们怎么会发生冲突,所以我会得到 15 个实例。
    • 您能提供您的自动缩放设置内容吗?通过msdn.microsoft.com/en-us/library/azure/….
    • 从资源浏览器中添加了 json。希望这是您所要求的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    • 2019-08-10
    • 2019-11-07
    相关资源
    最近更新 更多