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

Applica a: ✔️ macchine virtuali ✔️ Linux Windows vm

Sommario

Questo articolo descrive la risoluzione dei problemi generici relativi alle prestazioni delle macchine virtuali (VM) attraverso il monitoraggio e l'osservazione dei colli di bottiglia e fornisce possibili rimedi ai problemi che potrebbero 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 sia per Windows che per Linux macchine virtuali in Azure.

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

Abilitare la diagnostica delle macchine virtuali tramite il portale di Azure

Per abilitare la diagnostica della macchina virtuale:

  1. Passare alla macchina virtuale.

  2. Nella sezione Monitoraggio selezionare Impostazioni di diagnostica.

  3. Selezionare un account di archiviazione e quindi abilitare il monitoraggio a livello di guest.

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

Visualizzare le metriche dell'account di archiviazione tramite il portale di Azure (per il disco non gestito)

Per le macchine virtuali che usano dischi non gestiti, l'archiviazione è un livello molto importante quando si intende analizzare le prestazioni di I/O. Per le metriche correlate all'archiviazione, è necessario abilitare la diagnostica come passaggio aggiuntivo:

Identificare l'account di archiviazione (o gli account) usati dalla macchina virtuale selezionando la macchina virtuale:

  1. Nel portale di Azure selezionare la macchina virtuale.
  2. In Impostazioni selezionare Disco e quindi trovare l'account di archiviazione in cui viene salvato il disco.
  3. Passare all'account di archiviazione e selezionare Metriche.

Identificare i colli di bottiglia delle prestazioni

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.

Accedere al monitoraggio

Nel portale di Azure selezionare la macchina virtuale Azure da analizzare, selezionare Metrics la sezione Monitoraggio e quindi selezionare una metrica.

Screenshot che mostra come aprire la pagina Utilizzo e costi stimati.

Tempi di osservazione

Per individuare eventuali colli di bottiglia nelle risorse, esamina 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 colli di bottiglia della CPU

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

  1. Imposta l'intervallo di tempo.
  2. In Metrica selezionare Percentuale CPU.

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, fare clic su Monitoraggio di Azure piattaforma dati.

Picchi: i picchi potrebbero essere correlati a un'attività pianificata o 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 in modo ottimale e l'utilizzo della CPU rimane superiore a 95%, è possibile eseguire una delle attività seguenti:

  • 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.

È possibile usare Perfinsights per Windows o Linux per analizzare il processo che determina l'utilizzo 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. Seleziona l'utilizzo della memoria e trascina. 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 richiedono molta memoria, potresti riscontrare scarse prestazioni a causa della contesa di memoria che causa il trimming 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 di pagina o di file di scambio – verificare 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) vengono usati molto. 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 ridurre immediatamente l'utilizzo del file di paging o di scambio, aumentare le dimensioni della VM scegliendone una con più memoria, quindi monitorare le prestazioni.
  • 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.

È possibile usare Perfinsights per Windows o Linux per analizzare il processo che determina l'utilizzo della memoria.

Verificare la presenza di colli di bottiglia del disco (per il disco non gestito)

Per controllare il sottosistema di archiviazione per la macchina virtuale, controllare la diagnostica a livello di macchina virtuale Azure usando i contatori nella diagnostica della macchina virtuale e anche la diagnostica dell'account di archiviazione.

Per la risoluzione dei problemi specifici della macchina virtuale, è possibile usare Perfinsights per Windows o Linux, che può essere utile per analizzare il processo di I/O.

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

Visualizzazione della diagnostica dell'account di archiviazione nel sistema di monitoraggio

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

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

  1. Imposta l'intervallo di tempo.
  2. Impostare Spazio dei nomi metrica su BLOB.
  3. Impostare Metrica su Disponibilità.

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.

Controllare la disponibilità dell'archiviazione su Azure: per aggiungere la metrica dell'account di archiviazione: disponibilità

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

Verifica del timeout di archiviazione di Azure - Aggiungi le metriche dell'account di archiviazione

  • ClientTimeOutError
  • Errore di Timeout del Server
  • AverageE2ELatency
  • AverageServerLatency
  • RichiesteTotali

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 e TimeOutErrors aumentano contemporaneamente, il che potrebbe indicare un problema della piattaforma. Invia una nuova richiesta di supporto in questa situazione.

AverageE2ELatency rappresenta la latenza del client. Verificare come l'IOPS viene eseguito dall'applicazione. Cerca un aumento o un valore costantemente alto della metrica TotalRequests. 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 strozzatura.

Controllare la limitazione dell'archivio di Azure - Aggiungere le metriche dell'archiviazione: ThrottlingError

I valori per la limitazione indicano che la limitazione è a livello di account di archiviazione, il che significa che si sta raggiungendo 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 quali ne siano interessati. Tuttavia, stai raggiungendo i limiti di IOPS o di ingressi/uscite dell'account di storage.

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 aree:

Controllare il TotalIngress e il TotalEgress rispetto ai limiti di Ingress e Egress, in base al tipo di ridondanza e alla regione dell'account di archiviazione.

Controllare i limiti di throughput dei VHD collegati alla macchina virtuale. Aggiungere i parametri delle metriche della macchina virtuale per la lettura e la scrittura del disco.

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 della velocità

Se si raggiungono i limiti massimi degli account di archiviazione, riequilibrare i VHD tra gli account di archiviazione. Vedere Archiviazione di Azure Obiettivi di scalabilità e prestazioni.

Aumentare la produttività e ridurre la latenza

Se hai un'applicazione sensibile alla latenza e richiedi un'elevata velocità di trasferimento, eseguire la migrazione dei dischi rigidi virtuali ad Azure Premium Storage usando le macchine virtuali delle serie DS e GS.

Questi articoli trattano gli scenari specifici: