Risolvere i problemi relativi alle prestazioni delle macchine virtuali di Azure in Linux o Windows
Si applica a: ✔️ macchine virtuali Linux ✔️ macchine virtuali 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.
Abilitare la diagnostica delle macchine virtuali tramite portale di Azure
Per abilitare la diagnostica della macchina virtuale:
Passare alla macchina virtuale.
Nella sezione Monitoraggio selezionare Impostazioni di diagnostica.
Selezionare un account di archiviazione e quindi abilitare il monitoraggio a livello di guest.
Visualizzare le metriche dell'account di archiviazione tramite 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:
- Nella portale di Azure selezionare la macchina virtuale.
- In Impostazioni selezionare Disco e quindi trovare l'account di archiviazione in cui viene salvato il disco.
- Passare all'account di archiviazione e selezionare Metriche.
Identificare i colli di bottiglia in termini di 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
Nella portale di Azure selezionare la macchina virtuale di Azure da analizzare, selezionare Metriche nella sezione Monitoraggio e quindi selezionare una metrica.
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
- Imposta l'intervallo di tempo.
- In Metrica selezionare Percentuale CPU.
Monitorare le tendenze delle prestazioni della 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, 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 in modo ottimale e l'utilizzo della CPU rimane superiore al 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.
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:
- Aggiungi una sezione.
- Aggiungi una tessera.
- Apri la Galleria.
- Selezionare l'utilizzo della memoria e trascinare. Quando il riquadro è ancorato, fai clic con il pulsante destro del mouse e seleziona 6x4.
Monitorare le tendenze delle prestazioni della memoria
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 il disco non gestito)
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:
- Imposta l'intervallo di tempo.
- Impostare Spazio dei nomi metrica su BLOB.
- Impostare Metrica su Disponibilità.
Monitorare le tendenze delle prestazioni del disco (solo archiviazione standard)
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 la modalità di esecuzione delle operazioni di I/O al secondo 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 la limitazione è a livello di account di archiviazione, ovvero il raggiungimento del limite di operazioni di I/O al secondo 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 aree:
- Obiettivi di scalabilità e prestazioni per gli account di archiviazione standard
- Obiettivi di scalabilità e prestazioni per gli account di archiviazione BLOB di pagine premium
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.