不会为 FileUploader 角色触发自动缩放

本文提供有关以下问题的故障排除信息:FileUploader 角色未触发自动缩放,尽管其中一个实例中的 CPU 使用率始终为 100%。

原始产品版本:API 管理服务
原始 KB 编号: 4464899

注意

请参阅 Azure 云服务故障排除系列文章,这是实验室的第三个方案。 请确保已按照针对压缩器应用程序的实验室设置说明重新创建问题。

症状

(FileUploader_IN_1) 的 FileUploader 角色实例之一占用 100% 的 CPU,而在另外两个实例中,CPU 使用率正常。 根据实验室说明,你已基于“CPU 百分比”指标为 FileUploader 角色创建了一个自动缩放规则,但由于某种原因未触发该规则。

所有实例的 CPU 使用率:

CPU 使用率的屏幕截图,其中显示FileUploader_IN_0实例占用 3% 的 CPU。

CPU 使用率的屏幕截图,其中显示FileUploader_IN_1实例占用 100% 的 CPU。

CPU 使用率的屏幕截图,显示FileUploader_IN_2实例占用 3% 的 CPU。

排查步骤问题

如果仔细查看我们配置的自动缩放规则,它表示仅当所有角色实例的平均 CPU 使用率大于 90 时才会触发该规则,在这种情况下不会发生这种情况。

{
   "properties": {
      "name": "Autoscale based on CPU metric",
      "enabled": true,
      "targetResourceUri": "/subscriptions/{subscription-id}/resourceGroups/cloudservicelab/providers/Microsoft.ClassicCompute/domainNames/cloudservicelabs/slots/Production/roles/FileUploader",
      "profiles": [
         {
            "name": "Auto created scale condition",
            "capacity": {
               "minimum": "1",
               "maximum": "4",
               "default": "1"
            },
            "rules": [
               {
                  "scaleAction": {
                     "direction": "Increase",
                     "type": "ChangeCount",
                     "value": "1",
                     "cooldown": "PT10M"
                  },
                  "metricTrigger": {
                     "metricName": "Percentage CPU",
                     "metricNamespace": "",
                     "metricResourceUri": "/subscriptions/{subscription-id}/resourceGroups/cloudservicelab/providers/Microsoft.ClassicCompute/domainNames/cloudservicelabs/slots/Production/roles/FileUploader",
                     "operator": "GreaterThan",
                     "statistic": "Average",
                     "threshold": 90,
                     "timeAggregation": "Average",
                     "timeGrain": "PT5M",
                     "timeWindow": "PT30M"
                  }
               }
            ]
         }
      ],
      "notifications": [],
      "targetResourceLocation": "southcentralus"
   }
}

为 Azure 云服务设置诊断,并从 WADPerformanceCountersTable 检查每个角色实例的 CPU 使用率。 还可以 使用此 REST API 或 PowerShell 获取云服务角色的指标数据。

还可以从云服务资源中的 “指标 ”选项卡监视 FileUploader 角色的平均 CPU 使用率。 因此,从下图中可以看到,平均 CPU 使用率约为 33.35%,远远低于阈值。

FileUploader 角色的平均 CPU 使用率的屏幕截图。

因此,底线是自动缩放规则,这些规则使用基于测量的触发器属性的检测机制, (例如 CPU 使用率) 使用随时间推移的聚合值而不是即时值来触发自动缩放操作。 默认情况下,聚合是角色的所有实例中的值的平均值。 因此,对于多个实例,每个 PaaS VM 都会报告 CPU 百分比的数字。 为了合并这些实例,云服务角色将计算所有实例的“统计信息”。 例如,如果云服务角色中有三个实例,一个实例以 30% 的 CPU 运行,第二个实例以 60% 的 CPU 运行,另一个实例以 90% 的 CPU 运行,该角色将发出 60% 的平均 CPU 使用率。

联系我们寻求帮助

如果你有任何疑问或需要帮助,请创建支持请求联系 Azure 社区支持。 还可以向 Azure 反馈社区提交产品反馈。