Come identificare la causa dell'utilizzo della CPU al 100% nel servizio app di Azure?


12

Ho cinque app in un piano di servizio app di Azure, tutte copie diverse della stessa app per client diversi. È un'app ASP.NET MVC con un database SQL.

Questa mattina mi sono svegliato con siti lenti e non responsive, a volte con un errore 503. Dopo aver verificato le metriche CPU / memoria per il piano di servizio app, ho scoperto che la CPU era collegata al 100%:

CPU al 100%

E il grafico del tempo di CPU dei singoli siti mostra che tutti si spengono contemporaneamente, anche se alcuni peggio di altri:

Utilizzo della CPU di singoli siti

Ho provato a risolvere il problema eseguendo un riavvio dell'applicazione avanzato, ma il blade non si caricava, suppongo perché stava cercando di ottenere informazioni dal server che non potevano rispondere.

Alla fine ho provato a fermare ciascuno dei siti uno per uno, il che ha riportato la CPU a zero, quindi riavviandoli di nuovo, il che sembrava aver risolto il problema, ma ora alcuni di loro stanno iniziando a risalire.

Ho riscontrato un problema simile un paio di settimane fa e ho pensato che stavo diventando troppo grande per il mio piano di app, quindi aggiornato da S1 a S2 e sarebbe andato bene fino ad oggi.

Sono in perdita totale su come capire quale sia la causa di questo comportamento affamato della CPU. Qualcuno può indicarmi la giusta direzione di come posso iniziare a diagnosticare questo?


questo sembra accadere un po 'nei piani del servizio app di Azure, hai contattato MS? - a meno che tu non abbia apportato modifiche, vorrei far loro sapere che c'è un problema con la piattaforma.
Sum1sAdmin

Non ho un piano di supporto con loro, quindi non pensare che ci sia modo di far loro sapere. È un po 'preoccupante se ho solo problemi casuali con CPU al 100% - potrebbe essere necessario cercare un altro fornitore. Avere due esempi potrebbe aiutarti?
littlecharva,

Vorrei usare i forum aperti come technet - Se è fondamentale potresti ridimensionarlo ma non pagherei di più per qualcosa che devono risolvere, se è così.
Sum1sAdmin

Risposte:


6

Abbiamo riscontrato questo problema alcune volte e ogni volta si è rivelato essere scappato GC (garbage collection). È difficile da dimostrare e diagnosticare, ma quello che finisco per fare è usare il sito kudo (scm), facendo clic tools => support (che ti porta al sito di supporto per le app.

Da qui scegli la tua directory (se ne hai diverse) e il sito, fai clic su Analizza => Metriche quindi sul pulsante Diagnosi ( NOTA questo è già cambiato in modo che questi passaggi possano cambiare in qualsiasi momento), quindi torna su Analizza => Dianotics, tu alla fine riceverò un dump della memoria => rapporto "Stato analisi". Questo dovrebbe essere un file mht (che puoi aprire nell'odioso browser IE o Edge), quindi cerca la chiave "gc".

troverai alcuni interessanti frame di stack di chiamate con riferimenti a cose come "GCFrame" o chiamate più interessanti a "System.Threading.WaitHandle.WaitMultiple" se ne ottieni troppi, il tuo sistema potrebbe avere problemi con la garbage collection .

Come risolverlo ... questo è un argomento trattato in molti altri thread perché è come chiedere "come vivo in un mondo con IE 6 ancora in uso?" ...


1
Questo si è mosso. Ora si trova nel servizio app (non sito scm, normale sito di Azure) in "Diagnostica e risolvi problemi-> Strumenti di diagnostica-> Raccogli dump della memoria"
Josh Noe,

3

La soluzione migliore sarebbe installare New Relic o Application Insights per questa particolare app. Può essere facilmente installato tramite il servizio app -> Strumenti -> Monitoraggio delle prestazioni. Questo ti darà una visione dettagliata di ciò che sta accadendo sia sul lato server che sul lato client.

Monitoraggio dell'applicazione

Articolo: monitorare le prestazioni dell'app Web di Azure

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.