Condividi tramite


Scalabilità automatica con più profili

Il ridimensionamento delle risorse per un determinato giorno della settimana o per una data e un'ora specifiche possono ridurre i costi pur fornendo la capacità necessaria quando occorre.

È possibile usare più profili nella scalabilità automatica per ridurre le prestazioni in modi diversi in momenti differenti. Se ad esempio l'azienda non è attiva nel fine settimana, è possibile creare un profilo ricorrente per ridurre le risorse il sabato e la domenica. Se il Black Friday è un giorno molto impegnativo, si può creare un profilo per aumentare automaticamente le risorse tale giorno.

Questo articolo illustra i diversi profili di scalabilità automatica e come usarli.

È possibile avere uno o più profili nell'impostazione di scalabilità automatica.

Esistono tre tipi di profilo:

  • Profilo predefinito. Il profilo predefinito viene creato automaticamente e non dipende da una pianificazione. Non è possibile eliminare il profilo predefinito. Il profilo predefinito viene usato quando non sono presenti altri profili che corrispondono alla data e all'ora correnti.
  • Profili ricorrenti. Un profilo ricorrente è valido per un intervallo di tempo specifico e si ripete per i giorni della settimana selezionati.
  • Profili di data e ora fissi. Profilo valido per un intervallo di tempo in una data specifica.

Ogni volta che viene eseguito il servizio di scalabilità automatica, i profili vengono valutati nell'ordine seguente:

  1. Profili di data fissi
  2. Profili ricorrenti
  3. Profilo predefinito

Se le impostazioni di data e ora di un profilo corrispondono all'ora corrente, la scalabilità automatica applica le regole e i limiti di capacità del profilo. Viene usato solo il primo profilo applicabile.

L'esempio seguente mostra un'impostazione di scalabilità automatica con un profilo predefinito e un profilo ricorrente.

Screenshot che mostra un'impostazione di scalabilità automatica con profilo predefinito e ricorrente o condizione di scalabilità.

Nell'esempio precedente, lunedì dopo le 3:00, l'utilizzo del profilo ricorrente verrà interrotto. Se il numero di istanze è minore di 3, la scalabilità automatica viene ridimensionata al nuovo minimo di tre. La scalabilità automatica continua a usare questo profilo che applica il ridimensionamento in base alla percentuale di CPU fino a lunedì alle 20:00. In tutti gli altri orari il ridimensionamento viene eseguito in base al profilo predefinito, secondo il numero di richieste. Dopo le 20 di lunedì, la scalabilità automatica passa al profilo predefinito. Se, ad esempio, il numero di istanze al momento è 12, la scalabilità automatica riduce le istanze a 10, ovvero il valore massimo consentito per il profilo predefinito.

Più profili contigui

La scalabilità automatica passa da un profilo all'altro in base alle ore di inizio. L'ora di fine per un determinato profilo è determinata dall'ora di inizio del profilo successivo.

Nel portale il campo dell'ora di fine diventa l'ora di inizio successiva per il profilo predefinito. Non è possibile specificare la stessa ora per la fine di un profilo e l'inizio di quello successivo. Il portale forza l'ora di fine affinché sia un minuto prima dell'ora di inizio del profilo successivo. Durante questo minuto, il profilo predefinito diventa attivo. Se non si vuole che il profilo predefinito diventi attivo tra profili ricorrenti, lasciare vuoto il campo dell'ora di fine.

Suggerimento

Per configurare più profili contigui usando il portale, lasciare vuota l'ora di fine. L'utilizzo del profilo corrente terminerà quando il profilo successivo diventa attivo. Specificare un'ora di fine solo quando si desidera ripristinare il profilo predefinito. La creazione di un profilo ricorrente senza ora di fine è supportata solo tramite il portale e i modelli di ARM.

Più profili usando i modelli, l'interfaccia della riga di comando e PowerShell

Quando si creano più profili usando i modelli, l'interfaccia della riga di comando e PowerShell, seguire queste linee guida.

Per informazioni di riferimento su un modello completo, vedere la sezione relativa alla scalabilità automatica della Definizione di risorsa del modello di ARM.

Nel modello non viene specificata un'ora di fine. Un profilo rimarrà attivo fino all'ora di inizio del profilo successivo.

Aggiungere un profilo ricorrente usando i modelli di ARM

L'esempio seguente illustra come creare due profili ricorrenti. Un profilo per i fine settimana dalle ore 00:01 di sabato mattina e un secondo profilo per i giorni della settimana a partire dal lunedì alle ore 04:00. Ciò significa che il profilo del fine settimana inizia sabato mattina un minuto dopo mezzanotte e termina lunedì mattina alle 04:00. Il profilo per i giorni della settimana inizierà alle 4:00 di lunedì e terminerà subito dopo la mezzanotte del sabato mattina.

Usare il comando seguente per distribuire il modello: az deployment group create --name VMSS1-Autoscale-607 --resource-group rg-vmss1 --template-file VMSS1-autoscale.json dove VMSS1-autoscale.json è il file contenente l'oggetto JSON seguente.

{
    "$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/0000aaaa-11BB-cccc-dd22-eeeeee333333/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/0000aaaa-11BB-cccc-dd22-eeeeee333333/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/0000aaaa-11BB-cccc-dd22-eeeeee333333/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"
            }

        }
    ]
}    

Passaggi successivi