你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用按应用缩放的高密度托管

注释

建议使用 Azure Az PowerShell 模块与 Azure 交互。 若要开始,请参阅安装 Azure PowerShell。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az

可以通过缩放运行 Azure 应用服务应用的应用服务计划来缩放应用。 在同一应用服务计划中运行多个应用时,每个横向扩展实例都会运行计划中的所有应用。

相比之下,可以在应用服务计划级别启用按应用缩放,从而使应用能够独立于托管它的应用服务计划进行缩放。 这样,应用服务计划可以扩展到 10 个实例,但应用只能设置为使用 5 个。

注释

按应用缩放仅适用于 标准高级高级 V2高级 V3独立 定价等级。

将应用程序按最大努力分配到可用的应用服务计划,以实现跨实例的均匀分布。 虽然不保证均匀分布,但平台可确保同一应用两个实例不会托管在同一应用服务计划实例上。

平台不依赖指标来决定工人分配。 仅当从应用服务计划中添加或删除实例时,才会重新平衡应用程序。

使用 PowerShell 的按应用缩放

通过将参数-PerSiteScaling $true传入 New-AzAppServicePlan cmdlet,创建一个具有按应用缩放功能的计划。

New-AzAppServicePlan -ResourceGroupName $ResourceGroup -Name $AppServicePlan `
                            -Location $Location `
                            -Tier Premium -WorkerSize Small `
                            -NumberofWorkers 5 -PerSiteScaling $true

通过将 -PerSiteScaling $true 参数传入 Set-AzAppServicePlan cmdlet,使用现有应用服务计划启用按应用缩放。

Set-AzAppServicePlan -ResourceGroupName $ResourceGroup `
   -Name $AppServicePlan -PerSiteScaling $true

在应用级别,配置应用可在应用服务计划中使用的实例数。

在以下示例中,无论基础应用服务计划横向扩展到多少个实例,应用都限制为两个实例。

# Get the app we want to configure to use "PerSiteScaling"
$newapp = Get-AzWebApp -ResourceGroupName $ResourceGroup -Name $webapp

# Modify the NumberOfWorkers setting to the desired value
$newapp.SiteConfig.NumberOfWorkers = 2

# Post updated app back to Azure
Set-AzWebApp $newapp

重要

$newapp.SiteConfig.NumberOfWorkers$newapp.MaxNumberOfWorkers 不同。 按应用缩放使用 $newapp.SiteConfig.NumberOfWorkers 来确定应用的缩放特征。

使用 Azure 资源管理器的按应用缩放

以下 Azure 资源管理器模板将创建以下内容:

  • 横向扩展到 10 个实例的应用服务计划。
  • 配置为最多扩展到 5 个实例的应用。

应用服务计划将属性设置为 PerSiteScaling true "perSiteScaling": true。 应用正在将要使用的 number of workers 设置为 5 个 "properties": { "numberOfWorkers": "5" }

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters":{
        "appServicePlanName": { "type": "string" },
        "appName": { "type": "string" }
        },
    "resources": [
    {
        "comments": "App Service Plan with per site perSiteScaling = true",
        "type": "Microsoft.Web/serverFarms",
        "sku": {
            "name": "P1",
            "tier": "Premium",
            "size": "P1",
            "family": "P",
            "capacity": 10
            },
        "name": "[parameters('appServicePlanName')]",
        "apiVersion": "2015-08-01",
        "location": "West US",
        "properties": {
            "name": "[parameters('appServicePlanName')]",
            "perSiteScaling": true
        }
    },
    {
        "type": "Microsoft.Web/sites",
        "name": "[parameters('appName')]",
        "apiVersion": "2015-08-01-preview",
        "location": "West US",
        "dependsOn": [ "[resourceId('Microsoft.Web/serverFarms', parameters('appServicePlanName'))]" ],
        "properties": { "serverFarmId": "[resourceId('Microsoft.Web/serverFarms', parameters('appServicePlanName'))]" },
        "resources": [ {
                "comments": "",
                "type": "config",
                "name": "web",
                "apiVersion": "2015-08-01",
                "location": "West US",
                "dependsOn": [ "[resourceId('Microsoft.Web/Sites', parameters('appName'))]" ],
                "properties": { "numberOfWorkers": "5" }
            } ]
        }]
}

按应用缩放是一项功能,在全球 Azure 区域和应用服务环境中均可启用。 但是,建议的策略是使用应用服务环境来利用其高级功能和更大的应用服务计划容量。

按照以下步骤为应用配置高密度托管:

  1. 将应用服务计划指定为高密度计划,并将其横向扩展到所需的容量。

  2. 在应用服务计划中将 PerSiteScaling 标志设置为 true。

  3. 将创建新应用并将其分配给该应用服务计划,设置 numberOfWorkers 属性为 1

    • 使用此配置可以产生最高的密度。
  4. 可按应用独立配置辅助角色数,根据需要授予其他资源。 例如:

    • 高用途应用可以设置为 numberOfWorkers3 ,以便为该应用提供更多的处理能力。
    • 低用途应用将设置为 numberOfWorkers1