Condividi tramite


Risolvere i problemi di memoria elevata nelle macchine virtuali Windows di Azure

Si applica a: ✔️ macchine virtuali di Windows

I problemi di prestazioni si verificano in diversi sistemi operativi o applicazioni e ogni problema richiede un approccio univoco per la risoluzione dei problemi. CPU, memoria, rete e input/output (I/O) sono spesso fattori chiave quando si verificano problemi di prestazioni. Ogni area genera sintomi diversi (a volte simultaneamente) e richiede un approccio e una soluzione diagnostici diversi.

Questo articolo illustra l'utilizzo elevato della memoria (noto anche come Utilizzo elevato della memoria) che si verificano nelle macchine virtuali (VM) di Azure che eseguono il sistema operativo Windows. Per ottenere indicazioni sulla risoluzione dei problemi per le macchine virtuali di Azure che eseguono distribuzioni Linux, vedere Risolvere i problemi relativi alle prestazioni e isolare i colli di bottiglia in Linux.

Problemi di utilizzo elevato della memoria nelle macchine virtuali Windows di Azure

Oltre ai problemi di I/O e la latenza di rete, la risoluzione dei problemi di CPU e/o memoria richiede principalmente gli stessi strumenti e passaggi dei server locali. Uno degli strumenti consigliati dal supporto delle macchine virtuali di Azure è PerfInsights (disponibile sia per Windows che per Linux). PerfInsights può fornire una diagnosi delle procedure consigliate per le macchine virtuali di Azure in un report intuitivo. PerfInsights è anche uno strumento wrapper che consente di raccogliere dati Perfmon, Xperf e Netmon, a seconda dei flag selezionati all'interno dello strumento. Non è necessario contattare supporto tecnico Microsoft per eseguire PerfInsights nella macchina virtuale di Azure. PerfInsights è disponibile pubblicamente. Genera il report in locale o nell'account di archiviazione specificato.

La maggior parte degli strumenti di risoluzione dei problemi relativi alle prestazioni usati per i server locali, ad esempio Perfmon o Procmon, funzionerà nelle macchine virtuali Windows di Azure. PerfInsights, tuttavia, è progettato in modo esplicito per le macchine virtuali di Azure per fornire altre informazioni dettagliate, tra cui procedure consigliate di Azure, procedure consigliate per SQL, grafici di latenza di I/O ad alta risoluzione, schede di memoria e memoria e così via. Questo articolo illustra la parte di PerfInsights relativa alla risoluzione dei problemi relativi alla memoria.

Che cos'è La pressione della memoria?

Quando il sistema viene filtrato sulla memoria fisica (RAM) o sulla memoria virtuale (supportata dal file di paging), in base alla richiesta dei processi in esecuzione, il sistema operativo continua a regolare le pagine attive in RAM con un file di scambio. Questo caso indica la presenza di un utilizzo elevato di memoria e di un sistema operativo che sta lavorando duramente per ottenere l'area di lavoro per richiedere le app. La perdita di memoria è un'altra variante. Si tratta principalmente di un risultato di errori di codifica in cui il sistema operativo continua a cercare più allocazioni, causando in ultima analisi l'esaurimento della memoria virtuale.

Molti problemi sono direttamente correlati al carico di lavoro. Il tipo di carico di lavoro esistente sulla macchina determina il consumo di risorse che include la memoria.

Fattori comuni

Ecco alcuni fattori comuni in una situazione di memoria insufficiente. Se esistono uno di questi fattori, si è vicini alla radice di questo problema:

  • Modifica o distribuzione del codice recente applicabile principalmente alle app come Internet Information Services (IIS), Microsoft SharePoint, SQL Server o applicazioni di terze parti.

  • Aggiornamento recente che potrebbe essere correlato a un aggiornamento a livello di sistema operativo o aggiornamenti cumulativi a livello di applicazione e correzioni.

  • Una modifica della query o indici obsoleti. Anche le applicazioni livello dati SQL Server e Oracle hanno l'ottimizzazione del piano di query come un altro fattore. Le modifiche ai dati o la mancanza di indici appropriati possono causare più query per ottenere più pagine di dati in memoria rispetto a quelle ottimali, che causano stress nello spazio di scambio.

  • Specifico della macchina virtuale di Azure: alcuni processi, ad esempio RDAgent, e processi specifici dell'estensione, ad esempio l'agente di monitoraggio, l'agente MMA o il client di sicurezza, potrebbero causare un utilizzo elevato della memoria. Questi processi devono essere visualizzati da una configurazione, dalla prospettiva dei problemi noti o talvolta da una compilazione di regressione.

Risolvere i problemi di utilizzo elevato della memoria

Lo scopo della risoluzione del problema è ridurre il più possibile il processo di colpevolezza. Un'ulteriore analisi è specifica del processo che si trova a determinare un consumo elevato di memoria.

Ad esempio, se il processo è SQL Server (sqlservr.exe), i passaggi successivi saranno analizzare le impostazioni come MaxServerMemory e analizzare la query che usa il maggior numero di cicli di memoria in un periodo di tempo specifico. Per altre informazioni sulle procedure consigliate di SQL Server in Azure, vedere Dimensioni delle macchine virtuali: Procedure consigliate per le prestazioni per SQL Server in macchine virtuali di Azure.

Problema relativo alla pressione di memoria nell'ambito

Di seguito sono riportate alcune domande da porre durante la risoluzione del problema:

  • Esiste un modello per questo problema? Ad esempio, il problema di memoria insufficiente si verifica in un determinato momento ogni giorno, settimana o mese? In tal caso, è possibile correlarla a un processo, a un processo, a un report o a un account di accesso utente?

  • Livello app: il problema di memoria insufficiente è stato avviato dopo una modifica del codice recente? È stato applicato un aggiornamento in Windows o è stata distribuita una nuova compilazione dell'applicazione? Si è verificato un aumento improvviso della base utente o si è verificato un problema di bilanciamento del carico, causando un modello di carico diverso?

  • Livello dati: il problema di memoria insufficiente è stato avviato dopo una modifica del carico di lavoro, ad esempio un aumento del numero di utenti, un flusso di dati più elevato o un numero maggiore di report di cui è stato eseguito il pull? Questo carico di lavoro è stato migrato di recente in Azure? Ha mai funzionato bene?

  • Per Azure, il problema di memoria insufficiente è stato avviato in una delle condizioni seguenti?

    • Dopo una ridistribuzione o un riavvio recenti?
    • Quando è stato modificato un tipo o un livello di macchina virtuale?
    • Dopo l'aggiunta di una nuova estensione alla macchina virtuale?
    • Dopo che sono state apportate modifiche al servizio di bilanciamento del carico?
    • Esiste una scalabilità orizzontale per la configurazione del set di scalabilità di macchine virtuali, che ha portato a un carico invariabile?

Avvertenze azzurre

  • Soprattutto, comprendere il carico di lavoro. Quando si seleziona uno SKU di macchina virtuale (offerta/tipo), è possibile sottovalutare le specifiche di memoria, perché la tendenza consiste nell'esaminare il costo complessivo dell'hosting mensile. Se il carico di lavoro richiede un uso intensivo della memoria, la selezione di uno SKU di macchine virtuali di dimensioni ridotte può causare problemi di memoria insufficiente. Testare configurazioni diverse per il carico di lavoro per determinare la migliore funzionalità di calcolo necessaria.

  • Si prevede di configurare più utenti, ad esempio Desktop virtuale Azure? Le risorse, inclusa la memoria, devono essere fattoriate in base alla condivisione delle risorse mentre le sessioni sono attive.

  • L'app è progettata per portare in memoria il contesto di lavoro? Ad esempio, MongoDB può essere configurato in modo da funzionare in memoria, il che significa che userà la memoria e lo scambio di spazi in modo elevato. Di conseguenza, il tipo di macchina virtuale (offerta) selezionato deve soddisfare questo requisito.

Per altre applicazioni/configurazioni note, ad esempio SQL Server, Oracle, RDS (Servizi Desktop remoto), Desktop virtuale Azure, IIS o SharePoint, sono disponibili articoli sulle procedure consigliate di Azure che includono raccomandazioni per cui la configurazione minima è ottimale per questi carichi di lavoro.

Problemi di memoria insufficiente in corso

Se il problema si sta verificando in questo momento, questa è l'occasione migliore per acquisire la traccia del processo per determinare la causa del problema. Per individuare il processo, è possibile usare gli strumenti esistenti usati per i server Windows locali, ad esempio Procmon, Perfmon, RAMMAP, xPerf Windows Toolkit, ResourceExplorer e così via.

Gli strumenti seguenti sono consigliati dal supporto di Azure per le macchine virtuali di Azure:

PerfInsights

PerfInsights è lo strumento consigliato dal supporto di Azure per i problemi di prestazioni delle macchine virtuali. Vengono illustrate le procedure consigliate e sono disponibili schede di analisi dedicate per memoria, CPU e grafici di I/O ad alta risoluzione. È possibile eseguirlo OnDemand tramite il portale di Azure o all'interno della macchina virtuale. È profondamente integrato con il portale di Azure e illustra anche le procedure consigliate per le applicazioni di livello guest windows comuni.

Se si dispone di un ticket attivo con il team di supporto tecnico di Azure, è possibile condividere i dati di PerfInsights con essi o usarli in modo indipendente in base alle esigenze.

Ottenere PerfInsights

PerfInsights è disponibile per entrambi i sistemi operativi Windows e Linux.

Ecco alcune opzioni per Windows.

Esegui e analizza i report tramite il portale di Azure

Quando PerfInsights viene installato tramite il portale di Azure, installa un'estensione nella macchina virtuale. È anche possibile installare PerfInsights direttamente come estensione, passando a Estensioni nel pannello della macchina virtuale e quindi selezionando un'opzione di diagnostica delle prestazioni.

portale di Azure - Opzione 1

Selezionare l'opzione Diagnostica prestazioni . Verrà chiesto di installare l'opzione (usa le estensioni) nella macchina virtuale selezionata. Vedere lo screenshot seguente per un esempio:

Screenshot dell'opzione Installa diagnostica prestazioni.

Selezionare Installa diagnostica delle prestazioni. Verrà visualizzato un pannello Esegui diagnostica . Nel pannello Esegui diagnostica è possibile selezionare tipi di analisi diversi da eseguire. Le scelte preferite per l'analisi della memoria sono Analisi delle prestazioni e Analisi delle prestazioni avanzate.

Screenshot di quattro tipi di analisi.

In base alla selezione, verranno visualizzate altre opzioni. Vedere lo screenshot seguente per un esempio:

Screenshot che mostra altre opzioni di diagnostica.

Le opzioni numerate nello screenshot si riferiscono ai seguenti commenti:

  1. Seleziona Esegui diagnostica.

  2. Per l'opzione Analisi selezionare Analisi delle prestazioni o Analisi delle prestazioni avanzate. La raccolta di base raccoglie principalmente suggerimenti di configurazione e procedure consigliate per le macchine virtuali. Tuttavia, sono necessari dati più dettagliati a scopo di risoluzione dei problemi, che solo l'analisi delle prestazioni o i flag di raccolta di analisi delle prestazioni avanzate possono acquisire.

  3. Selezionare la durata della traccia della raccolta dati. Per la risoluzione dei problemi di memoria, selezionare 15 minuti o più. In modalità portale di Azure è possibile raccogliere fino a 15 minuti di dati. Per periodi di raccolta più lunghi, è necessario eseguire il programma come eseguibile dall'interno della macchina virtuale.

  4. Se viene chiesto al supporto tecnico di Azure di raccogliere questi dati, è possibile aggiungere il numero di ticket nel campo Numero richiesta di supporto. Questo campo è facoltativo.

  5. Selezionare la casella di controllo I accept that I am getting this software from Microsoft Corp. and that I have read and accept to the legal terms and privacy policy (I accept the End User License Agreement) and that I have read and accept to the legal terms and privacy policy (AULA) to accept the End User License Agreement (EULA). Selezionare la casella di controllo Accetto di condividere le informazioni di diagnostica con Microsoft se si intende rendere disponibile questo report al team di supporto tecnico di Azure per questo caso.

Il report di diagnostica delle prestazioni viene archiviato in uno degli account di archiviazione nella sottoscrizione. È disponibile per la visualizzazione e il download in seguito. Dopo aver inviato una diagnostica, questa stessa visualizzazione Diagnostica prestazioni visualizzerà anche le raccolte di report precedenti e un riepilogo dei risultati nelle categorie High/Medium/Low. Vedere lo screenshot seguente per un esempio:

Screenshot del report di diagnostica delle prestazioni.

È possibile selezionare uno dei report per visualizzare il livello successivo di dettagli. È anche possibile scaricare il report per un'analisi dettagliata selezionando Scarica report. Vedere lo screenshot seguente per un esempio:

Screenshot che mostra i dettagli del report di diagnostica delle prestazioni.

portale di Azure - Opzione 2

Selezionare Diagnostica e risoluzione dei problemi nel pannello della macchina virtuale e cercare Problemi di prestazioni della macchina virtuale nel pannello destro. Vedere lo screenshot seguente per un esempio:

Screenshot del pannello Diagnostica e risolvi problemi.

Se si seleziona Risoluzione dei problemi, viene caricata la pagina di installazione di PerfInsights. Questa pagina mostra anche la diagnostica automatizzata, che eseguirà controlli interni e mostrerà qualsiasi istanza di Pressione di memoria in questa macchina virtuale per le ultime 24 ore. In questa pagina verrà visualizzato anche un collegamento di diagnostica delle prestazioni di esecuzione per tornare alla visualizzazione PerfInsights in portale di Azure.

Screenshot del pannello Problemi di prestazioni della macchina virtuale.

Eseguire PerfInsights dalla macchina virtuale

Questo metodo può essere utilizzato se si intende eseguire PerfInsights per periodi più lunghi. L'articolo PerfInsights fornisce una procedura dettagliata dei diversi comandi e flag necessari per eseguire PerfInsights come eseguibile. Per analizzare l'utilizzo elevato della memoria, usare una delle modalità e dei comandi seguenti:

  • Scenario avanzato

    PerfInsights /run advanced xp /d 900 /AcceptDisclaimerAndShareDiagnostics

  • Scenario di rallentamento della macchina virtuale (prestazioni)

    PerfInsights /run vmslow /d 900 /AcceptDisclaimerAndShareDiagnostics

Il comando verrà eseguito per 15 minuti. L'output del comando si troverà nella stessa cartella in cui si salva l'eseguibile di PerfInsights. Per altre opzioni di comandi, vedere Ricerca per categorie eseguire PerfInsights?.

Cosa cercare nel rapporto

Dopo l'esecuzione del report, il percorso del contenuto dipende dal fatto che venga eseguito nel portale di Azure o come eseguibile. Per entrambe le opzioni, accedere alla cartella di log generata o al download (se in portale di Azure) in locale per l'analisi.

Ottenere i dati raccolti

La struttura di cartelle dovrebbe essere simile alla seguente:

Screenshot che mostra la struttura delle cartelle di log.

  1. Tutte le raccolte aggiuntive, ad esempio Perfmon, Xperf, Netmon, log SMB, registri eventi e così via, sono disponibili nella cartella di output .

    Screenshot che mostra GeneralCounters_000001.blg file e file System.evtx.

  2. Il report effettivo insieme all'analisi e alle raccomandazioni è Perfinsights Report.html.

  3. Per entrambi gli scenari Performance (VMslow) e Advanced, il report raccoglie informazioni perfmon durante l'esecuzione di PerfInsights.

  4. I registri eventi mostrano una rapida visualizzazione di utili dettagli sugli arresti anomali a livello di sistema o di processo.

Dove iniziare

Apri il rapporto PerfInsights. La scheda Risultati registra eventuali valori anomali in termini di consumo di risorse. Se sono presenti istanze di utilizzo elevato della memoria o di altri vincoli di risorse, la scheda Risultati la categorizzerà come impatto elevato o impatto medio .

Screenshot che mostra l'utilizzo delle risorse registrato nella scheda Risultati.

Se espandi l'evento Risultati, vedrai diversi dettagli chiave. Nella scheda sono elencati i processi in ordine decrescente per consumo medio di memoria. Indica se il processo è correlato al sistema o a un'app (SQL Server, IIS o un'app di terze parti).

Screenshot che mostra i dettagli chiave registrati nella scheda Risultati.

Altri dettagli

È disponibile una sottoscheda dedicata Top Memory Consumers (Consumer di memoria) dedicata in Memoria. Questa scheda può essere usata per l'analisi dettagliata dei modelli e mostra i dettagli del processo durante la durata dell'acquisizione dei dati.

La scheda Top Memory Consumers (Consumer di memoria superiore) include due sezioni separate: Periodi di utilizzo elevato della memoria e Principali consumer di memoria.

Screenshot che mostra periodi di utilizzo elevato della memoria.

  • Periodi di utilizzo elevato della memoria: questa sezione mostra una barra temporale quando l'utilizzo della memoria è elevato. Mostra anche la memoria di commit complessiva %, che è uno degli indicatori chiave dell'esaurimento della memoria. La percentuale AvailablePhysicalMemory indica come il sistema è in esecuzione in memoria o ciò che rimane disponibile per esso.

  • Principali consumer di memoria: questa sezione è altrettanto importante, perché mostra i dettagli del livello di processo sui consumer di memoria elevati durante l'intervallo di acquisizione dei dati. Vengono visualizzati sia i dettagli del processo che il relativo modello di utilizzo della memoria. L'elenco viene ordinato in base alla presenza di consumer di memoria medi elevati nella parte superiore. Prendere nota di EndTime StartTime (EndTime - meno StartTime), ovvero la durata effettiva per il processo che utilizza memoria elevata durante l'intervallo di tempo complessivo di raccolta dati.

    Screenshot che mostra i consumer di memoria elevata.

Queste due schede sono tutte necessarie per impostare il percorso per i passaggi successivi per la risoluzione dei problemi. A seconda del processo che sta guidando la condizione di memoria elevata, è necessario affrontare le domande poste in precedenza. I processi come SQL (sqlservr) o IIS (w3wp) richiedono un drill-down specifico per query o modifiche al codice che causano questa condizione.

Per i processi di sistema, ad esempio WmiPrvSE o SvcHost, è necessario seguire un percorso diverso. Un prerequisito per questi processi è che è necessario essere nella patch cumulativa più recente del sistema operativo.

Per i processi correlati alle macchine virtuali di Azure, ad esempio RDAgent, Operations Management Suite (OMS) ed eseguibili delle estensioni di sicurezza, è necessario assicurarsi che questi processi siano nelle versioni più recenti. Se il problema persiste anche dopo l'aggiornamento del processo alla build più recente, cercare assistenza dal team di supporto di Azure.

I registri eventi di sistema possono anche registrare l'ID evento 2004 come avviso. Mostra anche i primi tre processi in base al consumo.

Screenshot che mostra i dettagli dell'avviso dell'evento 2004.

Perfmon

Perfmon è uno dei primi strumenti per la risoluzione di un problema di risorsa nel sistema operativo Windows. Si noti che non fornisce un report chiaro con raccomandazioni o risultati. Richiede invece agli utenti di esplorare i dati raccolti e di usare un filtro specifico nelle diverse categorie di contatori.

PerfInsights raccoglie Perfmon come log aggiuntivo per gli scenari VMSlow e Advanced. Tuttavia, Perfmon può essere raccolto in modo indipendente e presenta questi vantaggi aggiuntivi:

  • Può essere ritirato a distanza.
  • Può essere pianificato tramite le Attività.
  • Può essere raccolto per periodi più lunghi o in modalità continua utilizzando la funzione di rollover.

Si consideri lo stesso esempio illustrato in PerfInsights per vedere come Perfmon mostra questi dati. Un indicatore rapido per l'integrità della memoria avviene tramite il contatore MBytes disponibile, che indica la memoria fisica disponibile per l'allocazione a un sistema o a un processo in caso di necessità. Anche se il sistema operativo inizierà a contrassegnare i processi per tagliare i workingset quando rileva conflitti, un numero di ballpark generico come flag rosso per I byte disponibili deve essere maggiore di 200 Mb (> 200 Mb).

Perfmon è disponibile per impostazione predefinita in Windows (Server o client) e può essere richiamato tramite l'interfaccia utente o uno strumento da riga di comando. Per caricare Perfmon in Windows, selezionare Avvia>esecuzione, digitare Perfmon e selezionare OK. Qualsiasi raccolta di dati eseguita per Perfmon avrà un'estensione *.blg .

È possibile aggiungere contatori in varie categorie di risorse. Per la risoluzione dei problemi di memoria, scegliere Memoria>disponibile MBytes. Vedere lo screenshot seguente per un esempio:

Screenshot che mostra i contatori disponibili e seleziona I byte disponibili.

Dopo aver aggiunto questo contatore, verrà visualizzato il modello AvailableMBytes durante l'intervallo di acquisizione dei dati o in fase di esecuzione. Aprire il file Perfmon (*.blg) dalla cartella di output PerfInsights e aggiungere il contatore in Memoria>disponibile MBytes. Controllare come viene visualizzato un dip nella memoria disponibile per il computer. Vedere lo screenshot seguente per un esempio:

Screenshot che mostra il modello availableMBytes durante l'intervallo di acquisizione dati.

Ma la domanda (quale app sta consumando eccessivamente la memoria?) rimane. Strumenti come PerfInsights, Monitoraggio risorse, Analisi delle prestazioni dei log (PAL) e così via per individuare queste app tramite interfaccia utente o report descrittivi.

È un po' noioso da zero nel processo perché deve essere eseguito tramite l'analisi manuale dei dati.

Perfmon ha la categoria contatore Processo. In questa categoria sono presenti alcuni contatori, ad esempio Working Set, Private Bytes e Virtual Bytes. Indicano il modello di utilizzo della memoria di ogni processo in esecuzione durante la durata della raccolta dati.

Il modello deve essere osservato per i processi con un aumento graduale o ripido che indica la domanda continua di memoria. Ecco come eseguire zero per i processi in base ai criteri di ricerca vicini al contatore _Total/PrivateBytes.

Screenshot che mostra il modello per il contatore PrivateBytes.

Semplificare l'analisi di Perfmon

In Perfmon non sono disponibili report pronti per l'utente predefiniti. Diverse visualizzazioni modificano il tipo di grafo, ma il processo di filtraggio (o il lavoro necessario per identificare i processi di colpevolezza) è manuale. Alcuni strumenti utili sono disponibili che utilizzano i file *.blg e forniscono un output più intuitivo da analizzare. Uno di loro è lo strumento PAL. Lo strumento PAL può utilizzare i file *.blg e generare report dettagliati.

L'elenco degli strumenti disponibili non si esaurisce con PerfInsights per Perfmon. È possibile usare qualsiasi strumento esistente (Procmon, RAMMAP, xPerf Windows Toolkit, ResourceExplorer e così via). Sono disponibili molti strumenti di terze parti da usare quando necessario.

Strumenti di monitoraggio di Azure

Qualsiasi sistema di produzione necessita di un monitoraggio coerente, quindi Microsoft riceve in modo proattivo gli avvisi e li usa per i modelli cronologici per comprendere meglio i requisiti delle risorse per l'ambiente app. Fortunatamente, le macchine virtuali di Azure (sia Windows che Linux) sono profondamente integrate con la funzionalità di monitoraggio di Azure, che offre una raccolta di metriche automatizzate affidabile e diverse vie per creare report o usare strumenti di terze parti per creare report necessari al team.

Se una macchina virtuale di produzione critica raggiunge una determinata soglia di risorse (ad esempio, la memoria), è possibile creare avvisi personalizzati. In questo caso, è possibile avvisare un team tramite posta elettronica o sms.

Le macchine virtuali di Azure hanno metriche affidabili che includono informazioni di base, ad esempio memoria, I/O di rete e byte di I/O. Per le metriche avanzate, ad esempio Monitoraggio di Azure, è necessario effettuare solo alcune selezioni per configurare e usare un account di archiviazione specificato.

Contatori di base (predefiniti).

Quando vengono create macchine virtuali di Azure, vengono fornite metriche predefinite di base pre-abilitate. Queste metriche non richiedono alcuna configurazione aggiuntiva per abilitare Monitoraggio di Azure (che installa un'estensione nelle macchine virtuali). La funzionalità di queste metriche di base non è esaustiva quanto quella fornita da Monitoraggio di Azure, ma può comunque mostrare l'integrità delle risorse delle macchine virtuali di base.

Lo screenshot seguente mostra come il modello viene visualizzato nella portale di Azure sotto le metriche memoria di una macchina virtuale. Questo screenshot è dello stesso intervallo di tempo usato in precedenza per condividere l'analisi di PerfInsights e Perfmon.

Screenshot che mostra le metriche della memoria.

Abilitare Monitoraggio di Azure

Dopo aver abilitato le metriche di Monitoraggio di Azure, il software installa un'estensione nella macchina virtuale e quindi inizia a raccogliere metriche granulari.

È possibile esplorare la personalizzazione completa fornita da Monitoraggio di Azure nelle macchine virtuali di Azure (Windows e Linux):

Risoluzione dei problemi reattiva

Se il problema si è già verificato, è necessario individuare il problema di memoria elevata al primo posto. La posizione reattiva può essere complessa perché la modalità di raccolta dati non sarà utile quanto il problema si è già verificato. Come condiviso nella sezione precedente, le metriche configurate di Monitoraggio di Azure possono svolgere un ruolo importante in questo caso, in quanto gestisce i dati cronologici in base al tempo di conservazione configurato.

Se questo problema si è verificato una sola volta, potrebbe essere difficile determinare quale app lo ha causato.

Se si ha a che fare con un modello ripetuto, è possibile raccogliere i dati durante il periodo in cui è probabile che si verifichi il problema. PerfInsights e Perfmon sono strumenti utili, ma è anche possibile usare gli strumenti preferiti.

PerfInsights non ha ancora una funzionalità di esecuzione pianificata. Tuttavia, Perfmon può essere eseguito e pianificato tramite la riga di comando, come condiviso nella sezione successiva.

Comando logman

Il Logman create counter comando viene usato per eseguire la raccolta Perfmon tramite la riga di comando. È possibile pianificarla tramite Gestione attività o eseguirla in modalità remota.

Ecco un esempio di comando (include la modalità raccolta remota):

Logman create counter LOGNAME -u DOMAIN\USERNAME * -f bincirc -v mmddhhmm -max 300 -c "\\SERVERNAME\LogicalDisk(*)\*" "\\SERVERNAME\Memory\*" "\\SERVERNAME\Network Interface(*)\*" "\\SERVERNAME\Paging File(*)\*" "\\SERVERNAME\PhysicalDisk(*)\*" "\\SERVERNAME\Process(*)\*" "\\SERVERNAME\Redirector\*" "\\SERVERNAME\Server\*" "\\SERVERNAME\System\*" "\\SERVERNAME\Terminal Services\*" "\\SERVERNAME\Processor(*)\*" "\\SERVERNAME\Cache\*" -si 00:01:00

Logman.exe può essere avviato da un computer di macchine virtuali di Azure peer nella stessa rete virtuale.

Per ulteriori informazioni su questi parametri, consultare logman create counter.

Dopo che i dati Perfmon sono stati raccolti mentre si verifica il problema, i passaggi rimanenti per analizzare i dati sono gli stessi descritti in precedenza.

Conclusione

Per qualsiasi problema di prestazioni, comprendere il carico di lavoro è la chiave per risolvere il problema. Le opzioni per diversi SKU di macchine virtuali e diverse opzioni di archiviazione su disco devono essere valutate concentrandosi sul carico di lavoro di produzione (usare il selettore macchina virtuale di Azure). Il processo di test delle soluzioni su macchine virtuali diverse può aiutarti a prendere la decisione migliore.

Poiché le operazioni utente e la quantità di dati variano, mantenere sempre un buffer nella memoria, nel calcolo, nella rete e nelle funzionalità di I/O della macchina virtuale. In questo modo, qualsiasi modifica improvvisa del carico di lavoro può essere assorbita da questo buffer di risorse aggiuntivo.

Se si prevede che il carico di lavoro aumenti presto, passare a un'offerta o a un tipo di macchina virtuale superiore con più funzionalità di calcolo/memoria/I/O. Se il carico di lavoro richiede un utilizzo intensivo della memoria, scegliere attentamente gli SKU delle MACCHINE virtuali con rapporti di memoria-CPU più elevati.

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.