Panoramica della scalabilità automatica con i set di scalabilità di macchine virtuali di AzureOverview of autoscale with Azure virtual machine scale sets

Un set di scalabilità di macchine virtuali di Azure può aumentare o diminuire automaticamente il numero di istanze di macchine virtuali che eseguono l'applicazione.An Azure virtual machine scale set can automatically increase or decrease the number of VM instances that run your application. Questo comportamento automatico ed elastico riduce il sovraccarico di gestione per monitorare e ottimizzare le prestazioni dell'applicazione.This automated and elastic behavior reduces the management overhead to monitor and optimize the performance of your application. Creare regole che definiscono le prestazioni minime accettabili per un'esperienza positiva del cliente.You create rules that define the minimally acceptable performance for a positive customer experience. Quando vengono soddisfatte le soglie definite, le regole di scalabilità automatica intervengono per regolare la capacità del set di scalabilità.When those defined thresholds are met, autoscale rules take action to adjust the capacity of your scale set. È possibile anche pianificare eventi per aumentare o ridurre automaticamente la capacità del set di scalabilità a intervalli fissi.You can also schedule events to automatically increase or decrease the capacity of your scale set at fixed times. Questo articolo offre una panoramica delle metriche delle prestazioni disponibili e delle azioni che la scalabilità automatica può eseguire.This article provides an overview of which performance metrics are available and what actions autoscale can perform.

Vantaggi della scalabilità automaticaBenefits of autoscale

Se aumenta la richiesta da parte dell'applicazione, aumenta il carico sulle istanze di macchine virtuali nel set di scalabilità.If your application demand increases, the load on the VM instances in your scale set increases. Se il carico aumenta in modo coerente e non momentaneamente, è possibile configurare regole di scalabilità automatica per aumentare il numero di istanze di macchine virtuali nel set di scalabilità.If this increased load is consistent, rather than just a brief demand, you can configure autoscale rules to increase the number of VM instances in the scale set.

Quando sono state create le istanze di macchine virtuali e sono state distribuite le applicazioni, il set di scalabilità inizia a distribuire loro il traffico tramite il bilanciamento del carico.When these VM instances are created and your applications are deployed, the scale set starts to distribute traffic to them through the load balancer. È possibile controllare le metriche da monitorare, ad esempio per la CPU o la memoria, il tempo per cui il carico dell'applicazione deve soddisfare una determinata soglia e il numero di istanze di macchine virtuali da aggiungere al set di scalabilità.You control what metrics to monitor, such as CPU or memory, how long the application load must meet a given threshold, and how many VM instances to add to the scale set.

Nelle ore serali o nel fine settimana è possibile che la richiesta delle applicazioni si riduca.On an evening or weekend, your application demand may decrease. Se il carico diminuisce in modo coerente nel tempo, è possibile configurare regole di scalabilità automatica per diminuire il numero di istanze di macchine virtuali nel set di scalabilità.If this decreased load is consistent over a period of time, you can configure autoscale rules to decrease the number of VM instances in the scale set. Questa azione riduce i costi di esecuzione del set di scalabilità poiché si esegue solo il numero di istanze necessarie per soddisfare la richiesta corrente.This scale-in action reduces the cost to run your scale set as you only run the number of instances required to meet the current demand.

Usare le metriche basate su hostUse host-based metrics

È possibile creare regole di scalabilità automatica basate sulle metriche host disponibili dalle istanze di macchine virtuali.You can create autoscale rules that built-in host metrics available from your VM instances. Le metriche basate su host consentono maggiore visibilità delle prestazioni delle istanze di macchine virtuali in un set di scalabilità senza la necessità di installare o configurare ulteriori agenti e raccolte di dati.Host metrics give you visibility into the performance of the VM instances in a scale set without the need to install or configure additional agents and data collections. Le regole di scalabilità automatica che usano queste metriche possono aumentare o ridurre il numero di istanze di macchine virtuali in risposta all'utilizzo della CPU, alla richiesta di memoria o all'accesso al disco.Autoscale rules that use these metrics can scale out or in the number of VM instances in response to CPU usage, memory demand, or disk access.

È possibile creare regole di scalabilità automatica che usano metriche basate su host con uno degli strumenti seguenti:Autoscale rules that use host-based metrics can be created with one of the following tools:

Per creare le regole di scalabilità automatica che usano metriche delle prestazioni più dettagliate, è possibile installare e configurare l'estensione Diagnostica di Azure sulle istanze di macchine virtuali o configurare l'applicazione in modo che usi App Insights.To create autoscale rules that use more detailed performance metrics, you can install and configure the Azure diagnostics extension on VM instances, or configure your application use App Insights.

Le regole di scalabilità automatica che usano le metriche basate su host, le metriche delle macchine virtuali nel guest con l'estensione di diagnostica di Azure e App Insights possono usare le seguenti impostazioni di configurazione.Autoscale rules that use host-based metrics, in-guest VM metrics with the Azure diagnostic extension, and App Insights can use the following configuration settings.

Origini delle metricheMetric sources

Le regole di scalabilità automatica possono usare le metriche fornite da una delle seguenti origini:Autoscale rules can use metrics from one of the following sources:

Origine della metricaMetric source Caso d'usoUse case
Set di scalabilità correnteCurrent scale set Per le metriche basate su host che non richiedono l'installazione o la configurazione di altri agenti.For host-based metrics that do not require additional agents to be installed or configured.
Account di archiviazioneStorage account L'estensione di diagnostica di Azure scrive le metriche delle prestazioni nell'archiviazione di Azure che quindi viene usata per attivare le regole di scalabilità automatica.The Azure diagnostic extension writes performance metrics to Azure storage that is then consumed to trigger autoscale rules.
Coda del bus di servizioService Bus Queue L'applicazione o altri componenti possono trasmettere i messaggi in una coda del bus di servizio di Azure per attivare le regole.Your application or other components can transmit messages on an Azure Service Bus queue to trigger rules.
Application InsightsApplication Insights Un pacchetto di strumentazione installato nell'applicazione che trasmette le metriche direttamente dall'app.An instrumentation package installed in your application that streams metrics directly from the app.

Criteri delle regole di scalabilità automaticaAutoscale rule criteria

È possibile usare le metriche basate su host seguenti quando si creano regole di scalabilità automatica.The following host-based metrics are available for use when you create autoscale rules. Se si usa l'estensione di diagnostica di Azure o App Insights, si definiscono le metriche da monitorare e usare con le regole di scalabilità automatica.If you use the Azure diagnostic extension or App Insights, you define which metrics to monitor and use with autoscale rules.

Nome metricaMetric name
CPU percentualePercentage CPU
Rete in ingressoNetwork In
Rete in uscitaNetwork Out
Byte letti da discoDisk Read Bytes
Byte scritti su discoDisk Write Bytes
Operazioni lettura disco/secDisk Read Operations/Sec
Operazioni scrittura disco/secDisk Write Operations/Sec
Crediti CPU rimanentiCPU Credits Remaining
Crediti CPU usatiCPU Credits Consumed

Quando si creano regole di scalabilità automatica per monitorare una determinata metrica, le regole esaminano una delle seguenti azioni di aggregazione di metriche:When you create autoscale rules to monitor a given metric, the rules look at one of the following metrics aggregation actions:

Tipo di aggregazioneAggregation type
MediaAverage
MinimaMinimum
MassimaMaximum
TotaleTotal
Last (Ultimo)Last
NumeroCount

Le regole di scalabilità automatica vengono attivate quando le metriche vengono confrontate con la soglia definita usando uno dei seguenti operatori:The autoscale rules are then triggered when the metrics are compared against your defined threshold with one of the following operators:

operatoreOperator
Maggiore diGreater than
Maggiore o uguale aGreater than or equal to
Minore diLess than
Minore o uguale aLess than or equal to
Uguale aEqual to
Diverso daNot equal to

Azioni eseguite all'attivazione delle regoleActions when rules trigger

Quando viene attivata una regola di scalabilità automatica, il set di scalabilità può eseguire la scalabilità in uno dei modi seguenti:When an autoscale rule triggers, your scale set can automatically scale in one of the following ways:

Operazione di scalabilitàScale operation Caso d'usoUse case
Aumenta numero diIncrease count by Un numero fisso di istanze di macchine virtuali da creare.A fixed number of VM instances to create. È utile nei set di scalabilità con un numero ridotto di macchine virtuali.Useful in scale sets with a smaller number of VMs.
Aumenta percentuale diIncrease percent by Aumento delle istanze di macchine virtuali basato su una percentuale.A percentage-based increase of VM instances. Adatto per set di scalabilità più grandi in cui un aumento predefinito può non migliorare notevolmente le prestazioni.Good for larger scale sets where a fixed increase may not noticeably improve performance.
Aumenta numero aIncrease count to Creare il numero di istanze di macchine virtuali necessarie per raggiungere un limite massimo desiderato.Create as many VM instances are required to reach a desired maximum amount.
Riduci numero diDecrease count to Un numero fisso di istanze di macchine virtuali da rimuovere.A fixed number of VM instances to remove. È utile nei set di scalabilità con un numero ridotto di macchine virtuali.Useful in scale sets with a smaller number of VMs.
Riduci percentuale diDecrease percent by Diminuzione delle istanze di macchine virtuali basata su una percentuale.A percentage-based decrease of VM instances. Adatto per set di scalabilità più grandi in cui un aumento predefinito può non ridurre notevolmente i consumi e i costi.Good for larger scale sets where a fixed increase may not noticeably reduce resource consumption and costs.
Riduci numero diDecrease count to Rimuovere il numero di istanze di macchine virtuali necessarie per raggiungere una quantità minima desiderata.Remove as many VM instances are required to reach a desired minimum amount.

Metriche delle macchine virtuali nel guest con l'estensione di diagnostica di AzureIn-guest VM metrics with the Azure diagnostics extension

L'estensione di diagnostica di Azure è un agente eseguito all'interno di un'istanza di macchine virtuali.The Azure diagnostics extension is an agent that runs inside a VM instance. L'agente monitora e salva le metriche delle prestazioni nell'archiviazione di Azure.The agent monitors and saves performance metrics to Azure storage. Queste metriche delle prestazioni contengono informazioni più dettagliate sullo stato della macchina virtuale, ad esempio AverageReadTime per i dischi o PercentIdleTime per la CPU.These performance metrics contain more detailed information about the status of the VM, such as AverageReadTime for disks or PercentIdleTime for CPU. È possibile creare regole di scalabilità automatica in base a una conoscenza più dettagliata delle prestazioni delle macchine virtuali, non solo della percentuale di utilizzo della memoria o della CPU.You can create autoscale rules based on a more detailed awareness of the VM performance, not just the percentage of CPU usage or memory consumption.

Per usare l'estensione Diagnostica di Azure, è necessario creare gli account di archiviazione di Azure per le istanze di macchine virtuali, installare l'agente di diagnostica di Azure, quindi configurare le macchine virtuali per tramettere contatori delle prestazioni specifici nell'account di archiviazione.To use the Azure diagnostics extension, you must create Azure storage accounts for your VM instances, install the Azure diagnostics agent, then configure the VMs to stream specific performance counters to the storage account.

Per altre informazioni, vedere gli articoli su come abilitare l'estensione Diagnostica di Azure in una VM Linux o in una VM Windows.For more information, see the articles for how to enable the Azure diagnostics extension on a Linux VM or Windows VM.

Metriche a livello di applicazione con App InsightsApplication-level metrics with App Insights

Per ottenere maggiore visibilità delle prestazioni delle applicazioni, è possibile usare Application Insights.To gain more visibility in to the performance of your applications, you can use Application Insights. Si installa un pacchetto di strumentazione di piccole dimensioni nell'applicazione che monitora l'app e invia i dati di telemetria ad Azure.You install a small instrumentation package in your application that monitors the app and sends telemetry to Azure. È possibile monitorare metriche come i tempi di risposta dell'applicazione, le prestazioni in fase di caricamento delle pagine e i conteggi di sessioni.You can monitor metrics such as the response times of your application, the page load performance, and the session counts. Queste metriche consentono di creare regole di scalabilità automatica a un livello granulare e incorporato poiché le regole attivate si basano su informazioni dettagliate e di utilità pratica che possono incidere sull'esperienza dell'utente.These application metrics can be used to create autoscale rules at a granular and embedded level as you trigger rules based on actionable insights that may impact the customer experience.

Per altre informazioni su Application Insights, vedere Informazioni su Azure Application Insights.For more information about App Insights, see What is Application Insights.

Scalabilità automatica pianificataScheduled autoscale

È possibile anche creare regole di scalabilità automatica in base a pianificazioni.You can also create autoscale rules based on schedules. Queste regole consentono di scalare automaticamente il numero di istanze di macchine virtuali a intervalli fissi.These schedule-based rules allow you to automatically scale the number of VM instances at fixed times. Con le regole basate su prestazioni, le prestazioni dell'applicazione potrebbero essere compromesse prima che vengano attivate le regole di scalabilità automatica e che venga effettuato il provisioning delle nuove istanze di macchine virtuali.With performance-based rules, there may be a performance impact on the application before the autoscale rules trigger and the new VM instances are provisioned. Se è possibile prevedere questa richiesta, viene eseguito il provisioning di ulteriori istanze di macchine virtuali e queste sono pronte per soddisfare la richiesta aggiuntiva di utilizzo da parte del cliente e dell'applicazione.If you can anticipate such demand, the additional VM instances are provisioned and ready for the additional customer use and application demand.

Di seguito sono riportati alcuni scenari di esempio che possono trarre vantaggio dall'utilizzo di regole di scalabilità automatica basate su pianificazione:The following examples are scenarios that may benefit the use of schedule-based autoscale rules:

  • Scalare automaticamente il numero di istanze di macchine virtuali all'inizio della giornata di lavoro quando aumentano le richieste dei clienti.Automatically scale out the number of VM instances at the start of the work day when customer demand increases. Al termine della giornata lavorativa ridurre automaticamente il numero di istanze di macchine virtuali per ridurre al minimo i costi delle risorse nelle ore notturne quando l'utilizzo delle applicazioni è inferiore.At the end of the work day, automatically scale in the number of VM instances to minimize resource costs overnight when application use is low.
  • Se un reparto usa un'applicazione in modo intensivo in specifici periodi del ciclo fiscale o mensile, ridimensionare automaticamente il numero di istanze di macchine virtuali per soddisfare queste richieste aggiuntive.If a department uses an application heavily at certain parts of the month or fiscal cycle, automatically scale the number of VM instances to accommodate their additional demands.
  • Quando si verifica un evento di marketing, una promozione o in periodo di saldi, è possibile ridimensionare automaticamente il numero di istanze di macchine virtuali in anticipo rispetto all'esigenza del cliente.When there is a marketing event, promotion, or holiday sale, you can automatically scale the number of VM instances ahead of anticipated customer demand.

Passaggi successiviNext steps

È possibile creare regole di scalabilità automatica che usano metriche basate su host con uno degli strumenti seguenti:You can create autoscale rules that use host-based metrics with one of the following tools:

Questa panoramica ha descritto in dettaglio come usare le regole di scalabilità automatica per scalare orizzontalmente e aumentare o diminuire il numero di istanze di macchine virtuali nel set di scalabilità.This overview detailed how to use autoscale rules to scale horizontally and increase or decrease the number of VM instances in your scale set. È possibile anche ridimensionare in verticale per aumentare o diminuire le dimensioni delle istanze di macchine virtuali.You can also scale vertically to increase or decrease the VM instance size. Per altre informazioni, vedere Ridimensionamento automatico verticale con set di scalabilità di macchine virtuali.For more information, see Vertical autoscale with Virtual Machine Scale sets.

Per informazioni su come gestire le istanze di macchine virtuali, vedere Gestire set di scalabilità di macchine virtuali con Azure PowerShell.For information on how to manage your VM instances, see Manage virtual machine scale sets with Azure PowerShell.

Per informazioni su come generare avvisi all'attivazione delle regole di scalabilità automatica, vedere Usare le azioni di scalabilità automatica per inviare notifiche di avviso di webhook e posta elettronica in Monitoraggio di Azure.To learn how to generate alerts when your autoscale rules trigger, see Use autoscale actions to send email and webhook alert notifications in Azure Monitor. Vedere anche Use audit logs to send email and webhook alert notifications in Azure Monitor (Usare i log di controllo per inviare notifiche di avviso tramite e-mail e webhook in Monitoraggio di Azure).You can also Use audit logs to send email and webhook alert notifications in Azure Monitor.