Autoskaluj z wieloma profilami

Skalowanie zasobów dla określonego dnia tygodnia lub określonej daty i godziny może zmniejszyć koszty, jednocześnie zapewniając pojemność potrzebną w razie potrzeby.

Skalowanie automatyczne umożliwia skalowanie wielu profilów na różne sposoby. Jeśli na przykład twoja firma nie jest aktywna w weekend, utwórz profil cykliczny, aby skalować zasoby w soboty i niedziele. Jeśli czarny piątek jest zajęty dzień, utwórz profil, aby automatycznie skalować zasoby w poziomie w czarny piątek.

W tym artykule wyjaśniono różne profile w autoskalowania i sposób ich używania.

W ustawieniu automatycznego skalowania możesz mieć co najmniej jeden profil.

Istnieją trzy typy profilów:

  • Profil domyślny. Profil domyślny jest tworzony automatycznie i nie zależy od harmonogramu. Nie można usunąć profilu domyślnego. Profil domyślny jest używany, gdy nie ma innych profilów pasujących do bieżącej daty i godziny.
  • Profile cykliczne. Profil cykliczny jest prawidłowy dla określonego zakresu czasu i powtarzany w wybranych dniach tygodnia.
  • Stałe profile daty i godziny. Profil, który jest prawidłowy dla zakresu czasu w określonej dacie.

Za każdym razem, gdy usługa autoskalowania jest uruchamiana, profile są oceniane w następującej kolejności:

  1. Stałe profile dat
  2. Profile cykliczne
  3. Profil domyślny

Jeśli ustawienia daty i godziny profilu są zgodne z bieżącą godziną, automatyczne skalowanie zastosuje reguły i limity pojemności tego profilu. Używany jest tylko pierwszy odpowiedni profil.

W poniższym przykładzie przedstawiono ustawienie automatycznego skalowania z profilem domyślnym i profilem cyklicznym.

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

W powyższym przykładzie w poniedziałek po 3:00 profil cykliczny przestanie być używany. Jeśli liczba wystąpień jest mniejsza niż 3, skalowanie automatyczne jest skalowane do nowego minimum trzech. Skalowanie automatyczne nadal używa tego profilu i skaluje się na podstawie procesora CPU% do poniedziałku o godzinie 18:00. W każdym innym czasie skalowanie będzie wykonywane zgodnie z profilem domyślnym na podstawie liczby żądań. Po godzinie 18:00 w poniedziałek autoskalowania przełączy się do profilu domyślnego. Jeśli na przykład liczba wystąpień w tym czasie wynosi 12, skalowanie automatyczne jest skalowane do 10, co jest maksymalnie dozwolone dla profilu domyślnego.

Wiele ciągłych profilów

Automatyczne skalowanie przechodzi między profilami na podstawie ich czasów rozpoczęcia. Godzina zakończenia danego profilu zależy od godziny rozpoczęcia następującego profilu.

W portalu pole godzina zakończenia staje się następnym czasem rozpoczęcia profilu domyślnego. Nie można określić tego samego czasu dla końca jednego profilu i początku następnego. Portal wymusi godzinę zakończenia na minutę przed godziną rozpoczęcia następującego profilu. W tej chwili domyślny profil stanie się aktywny. Jeśli nie chcesz, aby domyślny profil stał się aktywny między profilami cyklicznymi, pozostaw puste pole czasu zakończenia.

Napiwek

Aby skonfigurować wiele ciągłych profilów przy użyciu portalu, pozostaw pusty czas zakończenia. Bieżący profil przestanie być używany, gdy następny profil stanie się aktywny. Określ czas zakończenia tylko wtedy, gdy chcesz przywrócić profil domyślny. Tworzenie profilu cyklicznego bez czasu zakończenia jest obsługiwane tylko za pośrednictwem portalu i szablonów usługi ARM.

Wiele profilów przy użyciu szablonów, interfejsu wiersza polecenia i programu PowerShell

Podczas tworzenia wielu profilów przy użyciu szablonów interfejs wiersza polecenia i programu PowerShell postępuj zgodnie z poniższymi wytycznymi.

Zobacz sekcję autoskalowania definicji zasobu szablonu usługi ARM, aby uzyskać pełną dokumentację szablonu.

Brak specyfikacji w szablonie dla czasu zakończenia. Profil pozostanie aktywny do czasu rozpoczęcia następnego profilu.

Dodawanie profilu cyklicznego przy użyciu szablonów usługi ARM

W poniższym przykładzie pokazano, jak utworzyć dwa profile cykliczne. Jeden profil weekendów od 00:01 w sobotę rano i drugi profil Dzień tygodnia począwszy od poniedziałków o godzinie 04:00. Oznacza to, że profil weekendu rozpocznie się w sobotę rano o jednej minucie minął północ i koniec w poniedziałek rano o 04:00. Profil Weekday rozpocznie się o 4 rano w poniedziałek i zakończy się tuż po północy w sobotę rano.

Aby wdrożyć szablon, użyj następującego polecenia: az deployment group create --name VMSS1-Autoscale-607 --resource-group rg-vmss1 --template-file VMSS1-autoscale.json gdzie plik VMSS1-autoscale.json jest plikiem zawierającym poniższy obiekt 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"
            }

        }
    ]
}    

Następne kroki