Share via


使用多個設定檔進行自動調整

調整您的資源在一周的特定一天或特定日期和時間可以降低成本,同時仍然在需要時提供所需的容量。

您可以在自動調整中使用多個設定檔,以在不同的時間使用不同的方式進行縮減。 例如,如果您的公司週末不上班,則請建立週期性設定檔,以在星期六和星期日縮減您的資源。 如果黑色星期五是忙碌的一天,則請建立設定檔,以在黑色星期五自動擴增您的資源。

本文說明自動調整中的不同設定檔以及其使用方式。

您可以在自動調整設定中有一或多個設定檔。

設定檔有三種類型:

  • 預設設定檔。 預設設定檔會自動建立,且未與排程相依。 無法刪除預設設定檔。 沒有其他符合目前日期和時間的設定檔時,會使用預設設定檔。
  • 週期性設定檔。 週期性設定檔適用於特定時間範圍,並針對一周選取的天數進行重複。
  • 已修正日期和時間設定檔。 適用於特定日期之時間範圍的設定檔。

每次執行自動調整服務時,都會依下列順序來評估設定檔:

  1. 固定日期設定檔
  2. 週期性設定檔
  3. 預設設定檔

如果設定檔的日期和時間設定符合目前時間,則自動調整將會套用該設定檔的規則和容量限制。 只會使用第一個適用的設定檔。

下面的範例顯示具有預設設定檔和週期性設定檔的自動調整設定。

A screenshot showing an autoscale setting with default and recurring profile or scale condition.

在上面的範例中,將會在星期一上午 3 點之後停止使用週期性設定檔。 如果執行個體計數小於 3,則自動調整規模會調整為新的最小值 3。 自動調整會繼續使用此設定檔,並根據 CPU% 進行調整,直到星期一下午 8 點為止。 根據要求數目,所有其他時間都會根據預設設定檔來完成調整。 在星期一下午 8 點之後,自動調整會切換至預設設定檔。 例如,如果當時的執行個體數目是 12,則自動調整會縮減為 10,而這是預設設定檔允許的最大值。

多個連續設定檔

根據設定檔的開始時間自動調整轉換。 給定設定檔的結束時間是由下列設定檔的開始時間所決定。

在入口網站中,結束時間欄位會變成預設設定檔的下一個開始時間。 您無法針對一個設定檔的結尾和下一個設定檔的開頭指定相同的時間。 入口網站會在下列設定檔的開始時間前一分鐘強制結束時間。 在這一分鐘期間,預設設定檔將會變成作用中。 如果您不希望預設設定檔在週期性設定檔之間變成作用中,請將結束時間欄位保留空白。

提示

若要使用入口網站設定多個連續設定檔,請將結束時間保留空白。 當下一個設定檔變成使用中時,目前的設定檔將會停止使用。 只有在您想要還原為預設設定檔時,才指定結束時間。 僅透過入口網站和 ARM 範本支援建立沒有結束時間的週期性設定檔。

使用範本、CLI 和 PowerShell 的多個設定檔

使用範本、CLI 和 PowerShell 來建立多個設定檔時,請遵循下列指導方針。

如需完整的範本參考,請參閱 ARM 範本資源定義的自動調整一節。

範本中沒有結束時間的規格。 設定檔會保持作用中,直到下一個設定檔的開始時間為止。

使用 ARM 範本來新增週期性設定檔

下面的範例顯示如何建立兩個週期性設定檔。 從週六淩晨 00:01 開始的週末設定檔,以及從週一 04:00 開始的第二個工作日設定檔。 這意味著週末設定檔將在週六早淩晨夜過後一分鐘開始,並在週一淩晨 04:00 結束。 平日設定檔將於週一淩晨 4 點開始,週六淩晨午夜過後結束。

使用下列命令,以部署範本:az deployment group create --name VMSS1-Autoscale-607 --resource-group rg-vmss1 --template-file VMSS1-autoscale.json 其中 VMSS1-autoscale.json 是包含下列 JSON 物件的檔案。

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "type": "Microsoft.Insights/autoscaleSettings",
            "apiVersion": "2015-04-01",
            "name": "VMSS1-Autoscale-607",
            "location": "eastus",
            "properties": {

                "name": "VMSS1-Autoscale-607",
                "enabled": true,
                "targetResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
                "profiles": [
                    {
                        "name": "Weekday profile",
                        "capacity": {
                            "minimum": "3",
                            "maximum": "20",
                            "default": "3"
                        },
                        "rules": [
                            {
                                "scaleAction": {
                                    "direction": "Increase",
                                    "type": "ChangeCount",
                                    "value": "1",
                                    "cooldown": "PT5M"
                                },
                                "metricTrigger": {
                                    "metricName": "Inbound Flows",
                                    "metricNamespace": "microsoft.compute/virtualmachinescalesets",
                                    "metricResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
                                    "operator": "GreaterThan",
                                    "statistic": "Average",
                                    "threshold": 100,
                                    "timeAggregation": "Average",
                                    "timeGrain": "PT1M",
                                    "timeWindow": "PT10M",
                                    "Dimensions": [],
                                    "dividePerInstance": true
                                }
                            },
                            {
                                "scaleAction": {
                                    "direction": "Decrease",
                                    "type": "ChangeCount",
                                    "value": "1",
                                    "cooldown": "PT5M"
                                },
                                "metricTrigger": {
                                    "metricName": "Inbound Flows",
                                    "metricNamespace": "microsoft.compute/virtualmachinescalesets",
                                    "metricResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
                                    "operator": "LessThan",
                                    "statistic": "Average",
                                    "threshold": 60,
                                    "timeAggregation": "Average",
                                    "timeGrain": "PT1M",
                                    "timeWindow": "PT10M",
                                    "Dimensions": [],
                                    "dividePerInstance": true
                                }
                            }
                        ],
                        "recurrence": {
                            "frequency": "Week",
                            "schedule": {
                                "timeZone": "E. Europe Standard Time",
                                "days": [
                                    "Monday"
                                ],
                                "hours": [
                                    4
                                ],
                                "minutes": [
                                    0
                                ]
                            }
                        }
                    },
                    {
                        "name": "Weekend profile",
                        "capacity": {
                            "minimum": "1",
                            "maximum": "3",
                            "default": "1"
                        },
                        "rules": [],
                        "recurrence": {
                            "frequency": "Week",
                            "schedule": {
                                "timeZone": "E. Europe Standard Time",
                                "days": [
                                    "Saturday"                                    
                                ],
                                "hours": [
                                    0
                                ],
                                "minutes": [
                                    1
                                ]
                            }
                        }
                    }
                ],
                "notifications": [],
                "targetResourceLocation": "eastus"
            }

        }
    ]
}    

下一步