Esporta (0) Stampa
Espandi tutto

Diagnostica e risoluzione dei problemi di In-Role Cache (Cache di Azure)

Aggiornamento: luglio 2010

Le applicazioni di Cache nel ruolo sono configurate per la raccolta dei dati di diagnostica in base a un livello di diagnostica, che consente di specificare una sola impostazione per configurare il livello di raccolta dei dati. In questo argomento viene fornita una panoramica della diagnostica e delle operazioni per la risoluzione dei problemi relativi alle applicazioni di Cache nel ruolo.

Le applicazioni in esecuzione su sono applicazioni a istanze multiple distribuite su larga scala il cui debug può risultare problematico. Le applicazioni di questo tipo richiedono strumenti e metodi non convenzionali per la risoluzione dei problemi. La risoluzione dei problemi relativi alle applicazioni di non rientra nell'ambito di questo argomento, ma ulteriori informazioni al riguardo sono disponibili in Risoluzione dei problemi in Azure e Diagnostica e debug in Azure. Questi argomenti contengono procedure di risoluzione dei problemi sperimentate e collegamenti a informazioni e procedure consigliate più dettagliate. Per altre informazioni sulla visualizzazione di dati di diagnostica dopo che sono stati raccolti, vedere Archiviare e visualizzare i dati di diagnostica nell'account di archiviazione Azure.

Per configurare le applicazioni di Cache nel ruolo in modo da raccogliere i dati di diagnostica per la risoluzione dei problemi è necessario configurare il livello di diagnostica e la diagnostica della cache durante l'avvio del ruolo. In questo argomento viene fornita una panoramica di queste operazioni per la risoluzione dei problemi relativi alle applicazioni di Cache nel ruolo.

Cache nel ruolo fornisce cinque livelli di diagnostica che vengono utilizzati per configurare la quantità di dati di diagnostica da raccogliere. I livelli di diagnostica vanno da 0 a 4 e il numero indica il volume delle informazioni di diagnostica raccolte per i server e i client della cache. Ogni livello di diagnostica contiene un set preconfigurato di contatori delle prestazioni, log eventi, tracce e impostazioni di dump di arresto anomalo del sistema che è possibile utilizzare per monitorare l'integrità dell'applicazione di Cache nel ruolo.

 

Livello di diagnostica Dati di diagnostica raccolti

0

Solo log del server con errori molto gravi o irreversibili.

1

Dati di diagnostica che consentono di valutare con maggiore facilità i modelli di utilizzo, l'integrità del sistema di cache e i potenziali errori. Questo è il livello di configurazione predefinito.

2

Dati di diagnostica con granularità fine per tutte le richieste e le informazioni sul sistema importanti.

3

Dati di diagnostica con maggiori dettagli e informazioni sul sistema.

4

Log con il massimo livello di dettaglio per tutte le richieste e informazioni sul sistema.

Esistono due tipi di livelli per la diagnostica della memorizzazione nella cache, DiagnosticLevel e ClientDiagnosticLevel, che rappresentano rispettivamente la diagnostica del server di cache e quella del client della cache. Ogni livello configura un set differente di contatori delle prestazioni, log, tracce e impostazioni di dump di arresto anomalo del sistema. I livelli di diagnostica vengono configurati nel file ServiceConfiguration.cscfg relativo all'applicazione e, per un'applicazione cloud in esecuzione, possono essere modificati semplicemente mediante la distribuzione di un file ServiceConfiguration.cscfg aggiornato.

Il livello di diagnostica di un server della cache per un client della cache è specificato nel file ServiceConfiguration.cscfg, nella sezione relativa alla configurazione per il ruolo che ospita il cluster di cache. Questa impostazione viene aggiunta da Visual Studio quando la memorizzazione nella cache è abilitata nella scheda Caching relativa al ruolo ed è già presente quando un Cache Worker Role viene aggiunto a un progetto. Il valore predefinito di DiagnosticLevel è 1. Se per il ruolo non è definito alcun valore di DiagnosticLevel, viene utilizzato DiagnosticLevel 1. Per impostare un altro valore di DiagnosticLevel, modificare l'impostazione DiagnosticLevel relativa al ruolo in ServiceConfiguration.cscfg. Di seguito è riportato un esempio della sezione WorkerRole1 di un file ServiceConfiguration.cscfg con DiagnosticLevel 1.

<Role name="WorkerRole1">
  <Instances count="1" />
  <ConfigurationSettings>
    <!-- Other settings omitted for clarity... -->
    <Setting name="Microsoft.WindowsAzure.Plugins.Caching.DiagnosticLevel" value="1" />
  </ConfigurationSettings>
</Role>

Nella seguente tabella sono elencati i dati di diagnostica raccolti per ciascuno dei livelli di diagnostica.

 

DiagnosticLevel Dati raccolti

0

  • Livello log: Critical

  • Nessun contatore delle prestazioni

  • Nessun log eventi registrato

  • Dump di arresto anomalo del sistema ridotti

1

2

3

4

noteNota
Quando si eseguono applicazioni client di Cache nel ruolo nell'emulatore di , le tracce per tutte le istanze dei ruoli vengono raccolte nella cartella *_IN_0 anche in presenza di più istanze dei ruoli. Questo comportamento è previsto da progettazione. Quando le applicazioni di Cache nel ruolo sono ospitate in , le tracce per ciascuna istanza del ruolo client si trovano nelle rispettive cartelle delle istanze dei ruoli.

Il livello ClientDiagnosticLevel per un client della cache è specificato nel file ServiceConfiguration.cscfg, nella sezione relativa alla configurazione per il ruolo che è il client della cache. Questa impostazione viene aggiunta dal pacchetto NuGet di Cache nel ruolo quando il ruolo viene configurato come client della cache.

noteNota
Per altre informazioni sulla configurazione dei client della cache mediante il pacchetto NuGet di Cache nel ruolo, vedereConfigure a Project for Caching on Roles.

Il valore predefinito di ClientDiagnosticLevel è 1. Se per il ruolo non è definito alcun valore di ClientDiagnosticLevel, viene utilizzato ClientDiagnosticLevel 1. Per impostare un altro valore di ClientDiagnosticLevel, modificare l'impostazione ClientDiagnosticLevel relativa al ruolo in ServiceConfiguration.cscfg. Di seguito è riportato un esempio della sezione WebRole1 di un file ServiceConfiguration.cscfg con ClientDiagnosticLevel 1.

<Role name="WebRole1">
  <Instances count="1" />
  <ConfigurationSettings>
    <!-- Other settings omitted for clarity... -->
    <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />
  </ConfigurationSettings>
</Role>

Nella seguente tabella sono elencati i dati di diagnostica raccolti per ciascuno dei livelli di diagnostica client.

noteNota
Le impostazioni di dump di arresto anomalo per i livelli di diagnostica del client sono rilevanti solo per i client della cache che utilizzano lo shim client Memcache. I dump di arresto anomalo non vengono raccolti per i client non Memcache. Per altre informazioni sullo shim client Memcache, vedereWrapper Memcache per Cache di Azure.

 

ClientDiagnosticLevel Dati raccolti

0

  • Livello log: Critical

  • Nessun contatore delle prestazioni

  • Nessun log eventi registrato

  • Dump di arresto anomalo del sistema ridotti

1

2

3

4

noteNota
Quando si eseguono applicazioni client di Cache nel ruolo nell'emulatore di , le tracce per tutte le istanze dei ruoli vengono raccolte nella cartella *_IN_0 anche in presenza di più istanze dei ruoli. Questo comportamento è previsto da progettazione. Quando le applicazioni di Cache nel ruolo sono ospitate in , le tracce per ciascuna istanza del ruolo client si trovano nelle rispettive cartelle delle istanze dei ruoli.

Per avviare la raccolta dei dati di diagnostica della memorizzazione nella cache, è necessario richiamare il seguente codice durante l'avvio del ruolo. Per poter eseguire la raccolta dei dati di diagnostica questo codice deve essere aggiunto a ciascun ruolo che è un client o un server della cache. Per comodità, questo codice può essere ospitato nell'override di OnStart del ruolo, come illustrato nel seguente esempio.

public override bool OnStart()
{
    DiagnosticMonitorConfiguration dmConfig = 
        DiagnosticMonitor.GetDefaultInitialConfiguration();

    // Configure the collection of cache diagnostic data.
    CacheDiagnostics.ConfigureDiagnostics(dmConfig);

    DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", 
        dmConfig);

    return base.OnStart();
}

Il metodo ConfigureDiagnostics configura la raccolta dei dati di diagnostica della cache. Se questo metodo non viene chiamato, i dati di diagnostica della memorizzazione nella cache non vengono raccolti. Per utilizzare la classe CacheDiagnostics, aggiungere un riferimento a Microsoft.ApplicationServer.Caching.AzureCommon.dll in C:\Programmi\Microsoft SDKs\Azure\.NET SDK\2012-10\ref\Caching e includere la seguente istruzione using (o Imports).

using Microsoft.ApplicationServer.Caching.AzureCommon;
noteNota
Se il ruolo è stato configurato come un client della cache mediante il pacchetto NuGet di Cache nel ruolo, il riferimento ad assembly Microsoft.ApplicationServer.Caching.AzureCommon.dll sarà già stato aggiunto.

Se si aggiunge la memorizzazione nella cache a un ruolo esistente e il codice di configurazione della diagnostica è già presente, è possibile aggiungere la chiamata a ConfigureDiagnostics al codice di avvio della diagnostica esistente prima della chiamata a Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.Start.

WarningAvviso
Chiamando entrambi i metodi ConfigureDiagnostics e Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.Start è richiesto per la raccolta dei dati di diagnostica nelle applicazioni di Cache nel ruolo. Se entrambi questi metodi non vengono chiamati durante l'avvio del ruolo, i dati di diagnostica relativi alla memorizzazione nella cache non vengono raccolti.

Nelle seguenti sezioni sono riportati gli elenchi dei contatori delle prestazioni per ciascuno dei livelli di diagnostica server e client. Sono inclusi i contatori delle prestazioni di Cache nel ruolo e quelli di . Per un elenco completo con le descrizioni dei contatori di prestazioni di Cache nel ruolo, vedere Monitoraggio di In-Role Cache (Cache di Azure). Per altre informazioni sui contatori di prestazioni di , vedere Performance Counters in the .NET Framework.

DiagnosticLevel 1 contiene i seguenti contatori delle prestazioni.

  • \Azure Caching:Host\Tempo medio risposta secondaria /microsecondi operazione

  • \Azure Caching:Host\Byte totali dimensione dati

  • \Azure Caching:Host\Totale richieste client

  • \Azure Caching:Host\Totale richieste di lettura

  • \Azure Caching:Host\Numero oggetti totale

  • \Azure Caching:Host\Totale eccezioni di errore

  • \Memoria\MB disponibili

  • \Process(CacheService)\Page Faults/sec

    • Quando eseguito nell'emulatore , il nome del contatore è \Process(CacheServiceEmulator)\Page Faults/sec

  • \Processore(_Total)\% tempo processore

  • \Memoria CLR .NET(_Global_)\% tempo in GC

DiagnosticLevel 2 contiene i seguenti contatori delle prestazioni.

  • \Azure Caching:Host\Tempo medio risposta secondaria /microsecondi operazione

  • \Azure Caching:Host\Byte totali dimensione dati

  • \Azure Caching:Host\Totale richieste client

  • \Azure Caching:Host\Totale richieste di lettura

  • \Azure Caching:Host\Numero oggetti totale

  • \Azure Caching:Host\Totale eccezioni di errore

  • \Processore(_Total)\% tempo processore

  • \Memoria CLR .NET(_Global_)\% tempo in GC

  • \Azure Caching:Host\Totale richieste di lettura /sec

  • \Azure Caching:Host\Percentuale di mancato riscontro nella cache

  • \Azure Caching:Host\Byte totali dimensione dati primari

  • \Azure Caching:Host\Numero totale directory allocate

  • \Azure Caching:Host\Percentuale elementi della cache disponibili

  • \Azure Caching:Host\Numero totale elementi della cache disponibili

  • \Azure Caching:Host\Totale notifiche recapitate

  • \Azure Caching:Host\Totale esecuzioni di rimozione

  • \Azure Caching:Host\Memoria totale rimossa

  • \Azure Caching:Host\Totale oggetti rimossi

  • \Azure Caching:Host\Totale oggetti scaduti

  • \Azure Caching:Host\Totale richieste fornite

  • \Azure Caching:Host\Totale operazioni di scrittura

  • \LocksAndThreads CLR .NET(*)\Conflitti/sec

  • \Memoria CLR .NET(*)\% tempo in GC

  • \Memoria CLR .NET(*)\Dimensione heap di generazione 0

  • \Memoria CLR .NET(*)\Dimensione heap di generazione 1

  • \Memoria CLR .NET(*)\Dimensione heap di generazione 2

  • \Memoria CLR .NET(*)\Dimensione heap oggetti grandi

  • \Memoria\MB disponibili

  • \Process(CacheService)\Page Faults/sec

    • Quando eseguito nell'emulatore , il nome del contatore è \Process(CacheServiceEmulator)\Page Faults/sec

  • \Processo(*)\Conteggio thread

  • \Processo(*)\Working Set

  • \Processo(*)\Byte virtuali

  • \Processo(*)\Tempo trascorso

  • \Processo(*)\Errori di pagina/sec

  • \Interfaccia di rete(*)\Larghezza di banda corrente

  • \Interfaccia di rete(*)\Totale byte/sec

  • \Azure Caching:Host\Numero connessioni totale

  • \Azure Caching:Host\Tempo medio risposta quorum / microsecondi operazione

  • \Azure Caching:Host\Totale richieste client /sec

  • \Azure Caching:Host\Totale notifiche recapitate

  • \Azure Caching:Host\Totale mancati riscontri Get

  • \Azure Caching:Host\Totale operazioni di scrittura /sec

DiagnosticLevel 3 e DiagnosticLevel 4 contengono i seguenti contatori delle prestazioni.

  • \LocksAndThreads CLR .NET(*)\Conflitti/sec

  • \LocksAndThreads CLR .NET(*)\Lunghezza coda corrente

  • \Memoria CLR .NET(*)\Byte in tutti gli heap

  • \Memoria CLR .NET(*)\Raccolte di generazione 0

  • \Memoria CLR .NET(*)\Raccolte di generazione 1

  • \Memoria CLR .NET(*)\Raccolte di generazione 2

  • \Memoria CLR .NET(*)\% tempo in GC

  • \Memoria CLR .NET(*)\Dimensione heap di generazione 0

  • \Memoria CLR .NET(*)\Dimensione heap di generazione 1

  • \Memoria CLR .NET(*)\Dimensione heap di generazione 2

  • \Memoria CLR .NET(*)\Dimensione heap oggetti grandi

  • \Eccezioni CLR .NET(*)\Eccezioni

  • \Memoria\MB disponibili

  • \Memoria\Errori di pagina/sec

  • \PhysicalDisk(_Total)\% tempo di inattività

  • \PhysicalDisk(_Total)\Lunghezza media coda del disco

  • \Processore(_Total)\% tempo privilegiato

  • \Processore(_Total)\% tempo processore

  • \Sistema\Scambi contesto/sec

  • \Sistema\Lunghezza coda processore

  • \Processo(*)\% tempo processore

  • \Processo(*)\Conteggio handle

  • \Processo(*)\Byte privati

  • \Processo(*)\Conteggio thread

  • \Processo(*)\Working Set

  • \Processo(*)\Byte virtuali

  • \Processo(*)\Tempo trascorso

  • \Processo(*)\Errori di pagina/sec

  • \Process(CacheService)\Page Faults/sec

    • Quando eseguito nell'emulatore , il nome del contatore è \Process(CacheServiceEmulator)\Page Faults/sec

  • \Interfaccia di rete(*)\Larghezza di banda corrente

  • \Interfaccia di rete(*)\Pacchetti/sec

  • \Interfaccia di rete(*)\Byte inviati/sec

  • \Interfaccia di rete(*)\Byte ricevuti/sec

  • \Interfaccia di rete(*)\Totale byte/sec

  • \Sistema\Tempo di funzionamento sistema

  • \Azure Caching:Host\Percentuale elementi della cache disponibili

  • \Azure Caching:Host\Numero connessioni totale

  • \Azure Caching:Host\Percentuale directory disponibili

  • \Azure Caching:Host\Percentuale memoria disponibile

  • \Azure Caching:Host\Tempo medio risposta quorum / microsecondi operazione

  • \Azure Caching:Host\Tempo medio risposta secondaria /microsecondi operazione

  • \Azure Caching:Host\Percentuale di mancato riscontro nella cache

  • \Azure Caching:Host\Tempo elaborazione gateway

  • \Azure Caching:Host\Percentuale errori gateway

  • \Azure Caching:Host\Percentuale errori di elaborazione richiesta

  • \Azure Caching:Host\Numero totale elementi della cache allocati

  • \Azure Caching:Host\Numero totale directory allocate

  • \Azure Caching:Host\Numero totale elementi della cache disponibili

  • \Azure Caching:Host\Numero totale directory disponibili

  • \Azure Caching:Host\Totale byte di memoria disponibili

  • \Azure Caching:Host\Totale mancati riscontri nella cache

  • \Azure Caching:Host\Totale mancati riscontri cache /sec

  • \Azure Caching:Host\Totale richieste client

  • \Azure Caching:Host\Totale richieste client /sec

  • \Azure Caching:Host\Byte totali dimensione dati

  • \Azure Caching:Host\Totale oggetti rimossi

  • \Azure Caching:Host\Totale esecuzioni di rimozione

  • \Azure Caching:Host\Totale oggetti scaduti

  • \Azure Caching:Host\Totale eccezioni di errore

  • \Azure Caching:Host\Totale eccezioni di errore /sec

  • \Azure Caching:Host\Memoria totale rimossa

  • \Azure Caching:Host\Totale notifiche recapitate

  • \Azure Caching:Host\Totale notifiche recapitate /sec

  • \Azure Caching:Host\Totale richieste polling notifiche

  • \Azure Caching:Host\Totale richieste polling notifiche /sec

  • \Azure Caching:Host\Numero oggetti totale

  • \Azure Caching:Host\Totale oggetti restituiti

  • \Azure Caching:Host\Totale oggetti restituiti /sec

  • \Azure Caching:Host\Byte totali dimensione dati primari

  • \Azure Caching:Host\Totale mancati riscontri Get

  • \Azure Caching:Host\Totale mancati riscontri Get /sec

  • \Azure Caching:Host\Totale richieste Get

  • \Azure Caching:Host\Totale richieste Get /sec

  • \Azure Caching:Host\Totale richieste GetAndLock

  • \Azure Caching:Host\Totale richieste GetAndLock /sec

  • \Azure Caching:Host\Memoria totale rimossa

  • \Azure Caching:Host\Totale richieste di lettura

  • \Azure Caching:Host\Totale richieste di lettura /sec

  • \Azure Caching:Host\Totale richieste fornite

  • \Azure Caching:Host\Totale richieste fornite /sec

  • \Azure Caching:Host\Totale eccezioni tentativi

  • \Azure Caching:Host\Totale eccezioni tentativi /sec

  • \Azure Caching:Host\Byte totali dimensione dati secondari

  • \Azure Caching:Host\Totale richieste GetAndLock riuscite

  • \Azure Caching:Host\Totale richieste GetAndLock riuscite /sec

  • \Azure Caching:Host\Totale operazioni di scrittura

  • \Azure Caching:Host\Totale operazioni di scrittura /sec

ClientDiagnosticLevel 1 contiene i seguenti contatori delle prestazioni.

  • \Azure Caching:Client Host\Eccezioni di errore

  • \Azure Caching:Client Host\Totale riscontri cache locale

  • \Azure Caching:Client Host\Connessioni server correnti

  • \Azure Caching:Client Host\Latenza Get media / microsecondi operazione

  • \Azure Caching:Client Host\Latenza Put media / microsecondi operazione

  • \Azure Caching:Client Host\Eccezioni tentativi

  • \Azure Caching:Client Host\Eccezioni timeout

  • \Azure Caching:Client Host\Richieste

  • \Processore(_Total)\% tempo processore

  • \Memoria CLR .NET(_Global_)\% tempo in GC

  • \Azure Caching:Client(*)\Eccezioni di errore

  • \Azure Caching:Client(*)\Totale riscontri cache locale

  • \Azure Caching:Client(*)\Connessioni server correnti

  • \Azure Caching:Client(*)\Latenza Get media / microsecondi operazione

  • \Azure Caching:Client(*)\Latenza Put media / microsecondi operazione

  • \Azure Caching:Client(*)\Eccezioni tentativi

  • \Azure Caching:Client(*)\Eccezioni timeout

  • \Azure Caching:Client(*)\Richieste

ClientDiagnosticLevel 2, 3 e 4 contengono i seguenti contatori delle prestazioni.

  • \Azure Caching:Client Host\Richieste

  • \Azure Caching:Client Host\Richieste /sec

  • \Azure Caching:Client Host\Risposte server ignorate /sec

  • \Azure Caching:Client Host\Eccezioni di errore

  • \Azure Caching:Client Host\Eccezioni di errore /sec

  • \Azure Caching:Client Host\Latenza Get media / microsecondi operazione

  • \Azure Caching:Client Host\Latenza Put media / microsecondi operazione

  • \Azure Caching:Client Host\Latenza Get media (rete) / microsecondi operazione

  • \Azure Caching:Client Host\Richieste di lettura

  • \Azure Caching:Client Host\Richieste di scrittura

  • \Azure Caching:Client Host\Byte ricevuti /sec

  • \Azure Caching:Client Host\Byte inviati /sec

  • \Azure Caching:Client Host\Connessioni server correnti

  • \Azure Caching:Client Host\Percentuale riempimento cache locale

  • \Azure Caching:Client Host\Percentuale riscontri cache locale

  • \Azure Caching:Client Host\Totale riscontri cache locale

  • \Azure Caching:Client Host\Totale oggetti cache locale

  • \Azure Caching:Client Host\Totale notifiche ricevute

  • \Azure Caching:Client Host\Eccezioni timeout

  • \Azure Caching:Client Host\Eccezioni timeout /sec

  • \Azure Caching:Client Host\Eccezioni tentativi

  • \Azure Caching:Client Host\Eccezioni tentativi /sec

  • \Azure Caching:Client Host\Totale richieste di connessione non riuscite

  • \Azure Caching:Client Host\Eccezioni rete

  • \Azure Caching:Client Host\Eccezioni rete /sec

  • \Azure Caching:Client Host\Richieste in attesa correnti

  • \Processore(_Total)\% tempo processore

  • \Memoria CLR .NET(_Global_)\% tempo in GC

  • \Azure Caching:Client(*)\Richieste

  • \Azure Caching:Client(*)\Richieste /sec

  • \Azure Caching:Client(*)\Risposte server ignorate /sec

  • \Azure Caching:Client(*)\Eccezioni di errore

  • \Azure Caching:Client(*)\Eccezioni di errore /sec

  • \Azure Caching:Client(*)\Latenza Get media / microsecondi operazione

  • \Azure Caching:Client(*)\Latenza Put media / microsecondi operazione

  • \Azure Caching:Client(*)\Latenza Get media (rete) / microsecondi operazione

  • \Azure Caching:Client(*)\Richieste di lettura

  • \Azure Caching:Client(*)\Richieste di scrittura

  • \Azure Caching:Client(*)\Byte ricevuti /sec

  • \Azure Caching:Client(*)\Byte inviati /sec

  • \Azure Caching:Client(*)\Connessioni server correnti

  • \Azure Caching:Client(*)\Percentuale riempimento cache locale

  • \Azure Caching:Client(*)\Percentuale riscontri cache locale

  • \Azure Caching:Client(*)\Totale riscontri cache locale

  • \Azure Caching:Client(*)\Totale oggetti cache locale

  • \Azure Caching:Client(*)\Totale notifiche ricevute

  • \Azure Caching:Client(*)\Eccezioni timeout

  • \Azure Caching:Client(*)\Eccezioni timeout /sec

  • \Azure Caching:Client(*)\Eccezioni tentativi

  • \Azure Caching:Client(*)\Eccezioni tentativi /sec

  • \Azure Caching:Client(*)\Totale richieste di connessione non riuscite

  • \Azure Caching:Client(*)\Eccezioni rete

  • \Azure Caching:Client(*)\Eccezioni rete /sec

  • \Azure Caching:Client(*)\Richieste in attesa correnti

Vedere anche

Mostra:
© 2014 Microsoft