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 piątek jest zajęty dzień, utwórz profil, aby automatycznie skalować zasoby w poziomie w 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:
- Stałe profile dat
- Profile cykliczne
- Profil domyślny
Jeśli ustawienia daty i godziny profilu są zgodne z bieżącą godziną, skalowanie automatyczne stosuje reguły i limity pojemności profilu. Używany jest tylko pierwszy odpowiedni profil.
W poniższym przykładzie przedstawiono ustawienie automatycznego skalowania z profilem domyślnym i profilem cyklicznym.
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 odbywa się 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 wymusza czas zakończenia na minutę przed godziną rozpoczęcia następującego profilu. W tej chwili domyślny profil staje 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 rozpoczyna się w sobotę rano o jednej minucie minęło północ i kończy się 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 VMSS1-autoscale.json to plik zawierający następujący 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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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
- Dokumentacja interfejsu wiersza polecenia automatycznego skalowania
- Definicja zasobu w szablonie usługi ARM
- Moduł Az programu PowerShell programu PowerShell. Dokumentacja monitora
- Dokumentacja interfejsu API REST. Ustawienia skalowania automatycznego.
- Samouczek: automatyczne skalowanie zestawu skalowania maszyn wirtualnych przy użyciu szablonu platformy Azure
- Samouczek: automatyczne skalowanie zestawu skalowania maszyn wirtualnych przy użyciu interfejsu wiersza polecenia platformy Azure
- Samouczek: automatyczne skalowanie zestawu skalowania maszyn wirtualnych przy użyciu szablonu platformy Azure