Risolvere i problemi relativi alle prestazioni delle macchine virtuali di Azure in Linux o Windows

Questo articolo descrive la risoluzione dei problemi generici delle prestazioni delle macchine virtuali (VM) attraverso il monitoraggio e l'osservazione dei colli di bottiglia e fornisce possibili rimedi ai problemi che possono verificarsi. Oltre al monitoraggio, è possibile utilizzare Perfinsights, che può fornire un report con raccomandazioni sulle migliori pratiche e sui principali colli di bottiglia relativi a IO/CPU/memoria. Perfinsights è disponibile per macchine virtuali Windows e Linux in Azure.

Questo articolo illustra l'uso del monitoraggio per diagnosticare i colli di bottiglia delle prestazioni.

Abilitazione del monitoraggio

Monitoraggio delle macchine virtuali IAAS di Azure

Per monitorare la macchina virtuale guest, utilizzare Monitoraggio della macchina virtuale di Azure, che avvisa l'utente di determinate condizioni di risorse di alto livello. Per verificare se la diagnostica della macchina virtuale è abilitata, vedere Panoramica dei log delle risorse di Azure. Se visualizzi quanto segue, molto probabilmente la diagnostica non è abilitata:

                             Lo screenshot mostra il messaggio Il monitoraggio potrebbe non essere abilitato.                                           

Abilita la diagnostica delle macchine virtuali tramite il portale di Microsoft Azure

Per abilitare la diagnostica della macchina virtuale:

  1. Vai alla macchina virtuale.

  2. Fare clic su Impostazioni di diagnostica.

  3. Selezionare l'account di archiviazione e fare clic su Abilita monitoraggio a livello guest.

                                 Lo screenshot mostra i passaggi per abilitare la diagnostica della macchina virtuale.                                           

È possibile controllare l'account di archiviazione usato per la configurazione della diagnostica dalla scheda Agente in Impostazioni di diagnostica.

                             Lo screenshot evidenzia l'account di archiviazione nella scheda agente.                                           

Abilitare la diagnostica dell'account di archiviazione tramite il portale di Azure

L'archiviazione è un livello molto importante quando si intende analizzare le prestazioni IO di una macchina virtuale di Azure. Per le metriche relative all'archiviazione è necessario abilitare la diagnostica come passaggio aggiuntivo. Questa opzione può essere attivata anche se si vogliono analizzare solo i contatori relativi all'archiviazione.

  1. Identificare l'account o gli account di archiviazione usati dalla macchina virtuale selezionando la macchina virtuale. Fai clic su Impostazioni, quindi fai clic su Dischi:

                                 Lo screenshot mostra il disco del sistema operativo sotto i dischi.                                           

  2. Nel portale passare all'account di archiviazione (o agli account) per la macchina virtuale e seguire i passaggi seguenti:

    1. Fare clic su panoramica per l'account di archiviazione trovato con il passaggio precedente.
    2. Verranno visualizzate le metriche predefinite.

                                 Lo screenshot mostra le metriche predefinite in Panoramica.                                           

  3. Fare clic su una delle metriche, che mostrerà un altro pannello con più opzioni per configurare e aggiungere metriche.

                                 Lo screenshot mostra i passaggi per aggiungere e configurare le metriche.                                           

Per configurare queste opzioni:

  1. Seleziona Metriche.
  2. Seleziona la Risorsa (account di archiviazione).
  3. Selezionare Spazio dei nomi
  4. Seleziona Metrica.
  5. Seleziona il tipo di Aggregazione
  6. Puoi bloccare questa vista sulla dashboard.

Osservare i colli di bottiglia

Dopo aver completato il processo di configurazione iniziale per le metriche necessarie e dopo aver abilitato la diagnostica per la macchina virtuale e l'account di archiviazione correlato, possiamo passare alla fase di analisi.

Accesso al monitoraggio

Seleziona la macchina virtuale di Azure che vuoi esaminare e seleziona Monitoraggio.

                             Lo screenshot mostra il pannello Monitoraggio.                                           

Tempi di osservazione

Per individuare eventuali colli di bottiglia nelle risorse, esaminare i dati. Se scopri che la tua macchina ha funzionato correttamente, ma è stato segnalato che le prestazioni sono recentemente peggiorate, esamina un intervallo di tempo di dati che comprende i dati delle metriche delle prestazioni prima della modifica segnalata, durante e dopo il problema.

Verificare la presenza di colli di bottiglia della CPU

                             Lo screenshot mostra i passaggi per controllare il collo di bottiglia della CPU.                                           

  1. Modifica il grafico.
  2. Imposta l'intervallo di tempo.
  3. È quindi necessario aggiungere il contatore: percentuale CPU sistema operativo guest
  4. Salva.

Quando esamini i problemi di prestazioni, fai attenzione alle tendenze e cerca di capire se ti influenzano. Nelle sezioni successive, utilizzeremo i grafici di monitoraggio del portale per mostrare le tendenze. Possono anche essere utili per fare riferimenti incrociati sui diversi comportamenti delle risorse nello stesso periodo di tempo. Per personalizzare i grafici, fai clic su Piattaforma dati Monitoraggio di Azure.

Picchi: i picchi potrebbero essere correlati a un'attività pianificata/un evento noto. Se riesci a identificare l'attività, determina se l'attività viene eseguita al livello di prestazioni richiesto. Se le prestazioni sono accettabili, potrebbe non essere necessario aumentare le risorse.

Picco in aumento e costante: indica spesso un nuovo carico di lavoro. Se non si tratta di un carico di lavoro riconosciuto, abilitare il monitoraggio nella VM per scoprire quale processo (o processi) causa il comportamento. Una volta riconosciuto il processo, determinare se l'aumento del consumo è causato da un codice inefficiente o da un consumo normale. Se il consumo è normale, decidere se il processo funziona al livello di prestazioni richiesto.

Costante: determina se la macchina virtuale è sempre stata eseguita a questo livello o se è stata eseguita solo a tale livello da quando è stata abilitata la diagnostica. In tal caso, identifica il processo (o i processi) che causano il problema e prendi in considerazione l'aggiunta di un'altra risorsa.

In costante aumento: un aumento costante del consumo è spesso un codice inefficiente o un processo che assume un carico di lavoro maggiore per l'utente.

Correzione dell'utilizzo elevato della CPU

Se l'applicazione o il processo non è in esecuzione al livello di prestazioni corretto e l'utilizzo costante della CPU è pari al 95%, puoi eseguire una delle seguenti attività:

  • Per un rimedio immediato: aumentare la VM a una dimensione con più core
  • Comprendi il problema: individua l'applicazione/processo e risolvi i problemi di conseguenza.

Se hai aumentato la VM e la CPU è ancora impegnata al 95%, determina se questa impostazione offre prestazioni migliori o un throughput dell'applicazione superiore a un livello accettabile. In caso contrario, risolvere i problemi relativi a quella singola applicazione\processo.

Puoi utilizzare Perfinsights per Windows o Linux per analizzare quale processo determina il consumo della CPU.

Verificare la presenza di colli di bottiglia della memoria

Per visualizzare le metriche:

  1. Aggiungi una sezione.
  2. Aggiungi una tessera.
  3. Apri la Galleria.
  4. Selezionare l'utilizzo della memoria e trascinare. Quando il riquadro è ancorato, fai clic con il pulsante destro del mouse e seleziona 6x4.

L'utilizzo della memoria mostra quanta memoria viene consumata con la VM. Comprendi la tendenza e se corrisponde al momento in cui riscontri problemi. Dovresti sempre avere più di 100 MB di memoria disponibile.

Picco e costante/costante consumo stabile: l'elevato utilizzo della memoria potrebbe non essere la causa di prestazioni scadenti, poiché alcune applicazioni come i motori di database relazionali allocano una grande quantità di memoria e questo utilizzo potrebbe non essere significativo. Tuttavia, se sono presenti più applicazioni che necessitano di memoria, potresti riscontrare scarse prestazioni a causa del conflitto di memoria che causa il taglio e il paging/scambio su disco. Queste scarse prestazioni sono spesso una causa evidente dell'impatto sulle prestazioni dell'applicazione.

Consumo in costante aumento: un possibile "riscaldamento" dell'applicazione, questo consumo è comune tra i motori di database in fase di avvio. Tuttavia, potrebbe anche essere un segno di una perdita di memoria in un'applicazione. Identificare l'applicazione e capire se il comportamento è previsto.

Utilizzo del file di paging o di scambio: controlla se il file di paging di Windows (che si trova in D:) o il file di scambio di Linux (che si trova in /dev/sdb) viene utilizzato pesantemente. Se non hai nulla su questi volumi tranne questi file, controlla se ci sono valori elevati di lettura/scrittura su quei dischi. Questo problema è indicativo di condizioni di memoria insufficiente.

Risoluzione dell'utilizzo elevato della memoria

Per risolvere un elevato utilizzo della memoria, eseguire una delle seguenti attività:

  • Per un rimedio immediato o per l'utilizzo di paging o file di scambio: aumentare le dimensioni della VM a una con più memoria, quindi monitorare.
  • Comprensione del problema: individua applicazioni/processi e risolvi i problemi per identificare le applicazioni ad alto consumo di memoria.
  • Se conosci l'applicazione, verifica se è possibile limitare l'allocazione di memoria.

Se dopo l'aggiornamento a una macchina virtuale più grande si riscontra ancora un aumento costante fino al 100%, identificare l'applicazione/processo e risolvere il problema.

Puoi utilizzare Perfinsights per Windows o Linux per analizzare quale processo determina il consumo di memoria.

Verificare la presenza di colli di bottiglia del disco

Per controllare il sottosistema di archiviazione per la macchina virtuale, controllare la diagnostica a livello di macchina virtuale di Azure usando i contatori in Diagnostica macchina virtuale e anche Diagnostica account di archiviazione.

Per la risoluzione dei problemi specifici della VM, puoi utilizzare Perfinsights per Windows o Linux, che potrebbe aiutare ad analizzare quale processo sta guidando gli IO.

Tieni presente che non sono disponibili contatori per gli account con ridondanza della zona e di archiviazione Premium. Per problemi relativi a questi contatori, solleva una richiesta di assistenza.

Visualizzazione della diagnostica dell'account di archiviazione nel monitoraggio

Per lavorare sugli elementi seguenti, accedere all'account di archiviazione per la macchina virtuale nel portale:

                             Lo screenshot mostra i passaggi per visualizzare la diagnostica dell'account di archiviazione nel monitoraggio.                                           

  1. Modifica il grafico di monitoraggio.
  2. Imposta l'intervallo di tempo.
  3. Aggiungere i contatori descritti nei passaggi seguenti.
  4. Salvare le modifiche.

Per identificare i problemi con l'archiviazione, esaminare le metriche delle prestazioni dalla diagnostica dell'account di archiviazione e dalla diagnostica delle macchine virtuali.

Per ogni controllo di seguito, cerca le tendenze principali quando i problemi si verificano entro l'intervallo di tempo del problema.

Verificare la disponibilità dell'archiviazione di Azure: aggiungere la metrica dell'account di archiviazione: disponibilità

Se noti un calo della disponibilità, potrebbe esserci un problema con la piattaforma, controlla lo stato di Azure. Se non viene visualizzato alcun problema, inoltra una nuova richiesta di supporto.

Verificare il timeout di archiviazione di Azure: aggiungere le metriche dell'account di archiviazione

  • ClientTimeOutError
  • ServerTimeOutError
  • AverageE2ELatency
  • AverageServerLatency
  • TotalRequests

I valori della metrica *TimeOutError indicano che un'operazione di IO ha impiegato troppo tempo e si è interrotta. I passaggi successivi aiuteranno a identificare le cause potenziali.

AverageServerLatency aumenta contemporaneamente al TimeOutErrors potrebbe essere un problema della piattaforma. Solleva una nuova richiesta di supporto in questa situazione.

AverageE2ELatency rappresenta la latenza del client. Verificare in che modo gli IOPS vengono eseguiti dall'applicazione. Cerca una metrica TotalRequests in aumento o costantemente alta. Questa metrica rappresenta IOPS. Se stai iniziando a raggiungere i limiti dell'account di archiviazione o del singolo disco rigido virtuale, la latenza potrebbe essere correlata alla limitazione.

Verificare la limitazione di archiviazione di Azure: aggiungere le metriche dell'account di archiviazione: ThrottlingError

I valori per la limitazione indicano che si è sottoposti a limitazione a livello di account di archiviazione, il che significa che si raggiunge il limite di IOPS dell'account. Puoi determinare se stai raggiungendo la soglia di IOP controllando la metrica TotalRequests.

Si noti che ogni disco rigido virtuale ha un limite di 500 IOPS o 60 MBit, ma è vincolato dal limite cumulativo di 20000 IOPS per account di archiviazione.

Con questa metrica, non è possibile stabilire quale BLOB stia causando la limitazione e quale ne sia affetto. Tuttavia, stai raggiungendo i limiti di IOPS o di ingresso/uscita dell'account di archiviazione.

Per capire se si sta raggiungendo il limite di IOPS, accedere alla diagnostica dell'account di archiviazione e controllare TotalRequests, verificando se si sta avvicinando a 20 mila. Identifica un cambiamento nel modello, se vedi il limite per la prima volta o se questo limite si verifica in un determinato momento.

Con le nuove offerte di dischi nell'archiviazione standard, i limiti di IOPS e velocità effettiva potrebbero differire, ma il limite cumulativo dell'account di archiviazione standard è 20000 IOPS (l'archiviazione Premium ha limiti diversi a livello di account o disco). Ulteriori informazioni sulle diverse offerte di dischi di archiviazione standard e sui limiti per disco:

Riferimenti

La larghezza di banda dell'account di archiviazione viene misurata dalle metriche dell'account di archiviazione: TotalIngress e TotalEgress. Sono disponibili soglie diverse per la larghezza di banda a seconda del tipo di ridondanza e delle regioni.

Controllare TotalIngress e TotalEgress rispetto ai limiti Ingress e Egress per il tipo e l'area di ridondanza dell'account di archiviazione.

Controllare i limiti di throughput dei dischi rigidi virtuali collegati alla macchina virtuale. Aggiungere la lettura e la scrittura del disco dei parametri della macchina virtuale.

Le nuove offerte di dischi in Archiviazione standard hanno IOPS e limiti di velocità effettiva diversi (IOPS non sono esposti per disco rigido virtuale). Esamina i dati per vedere se stai raggiungendo i limiti di MB di velocità effettiva combinata dei dischi rigidi virtuali a livello di macchina virtuale utilizzando la lettura e la scrittura su disco, quindi ottimizza la configurazione di archiviazione della macchina virtuale per superare i limiti dei singoli dischi rigidi virtuali. Ulteriori informazioni sulle diverse offerte di dischi di archiviazione standard e sui limiti per disco:

Correzione dell'elevato utilizzo del disco/latenza

Ridurre la latenza del client e ottimizzare IO della macchina virtuale per superare i limiti di VHD

Ridurre la limitazione

Se si raggiungono i limiti massimi degli account di archiviazione, riequilibrare i dischi rigidi virtuali tra gli account di archiviazione. Fare riferimento a Obiettivi di scalabilità e prestazioni dell'archiviazione di Azure.

Aumentare la produttività e ridurre la latenza

Se si dispone di un'applicazione sensibile alla latenza e si richiede una velocità effettiva elevata, eseguire la migrazione dei dischi rigidi virtuali all'archiviazione Premium di Azure usando la macchina virtuale della serie DS e GS.

Questi articoli trattano gli scenari specifici:

Contattaci per ricevere assistenza

In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.