VENTAS: 1-800-867-1389

Diagnóstico y solución de problemas de Caché en rol (Caché de Azure)

Actualizado: septiembre de 2014

noteNota
Si quiere que le guiemos a la hora de elegir la oferta de Caché de Azure que mejor se adapta a su aplicación, consulte ¿Cuál es la oferta de Caché de Azure más adecuada para mí?.

Las aplicaciones de Caché en rol están configuradas para recopilar datos de diagnósticos mediante un nivel de diagnóstico. Este nivel de diagnóstico ofrece un ajuste único para configurar el nivel de recopilación de datos. En este tema se incluye una descripción general del diagnóstico y el procedimiento de resolución de problemas de las aplicaciones de Caché en rol.

Las aplicaciones que se ejecutan en Azure son aplicaciones de varias instancias y extensamente distribuidas que pueden ser difíciles de depurar. Este tipo de aplicaciones requiere más que las herramientas y las estrategias estándar para la solución de problemas. La solución de problemas de aplicaciones de Azure queda fuera del ámbito de este tema, pero podrá obtener más información en Solucionar problemas de Azure y Diagnósticos y depuración de Azure. Estos temas analizan soluciones de problemas comprobadas e incluyen vínculos a información más completa y a procedimientos recomendados. Para obtener más información sobre la visualización de datos de diagnóstico una vez recopilados, vea Guardar y ver datos de diagnóstico en el almacenamiento de Azure.

La configuración de aplicaciones de Caché en rol para recopilar datos de diagnóstico con el fin de solucionar problemas requiere la configuración del nivel de diagnóstico y de los diagnósticos de caché durante el inicio del rol. En este tema se incluye una descripción general de estos pasos para solucionar problemas de aplicaciones de Caché en rol.

Caché en rol proporciona cinco niveles de diagnóstico que sirven para configurar la cantidad de datos de diagnóstico recopilados. Los niveles de diagnóstico pueden oscilar entre 0 y 4, y el número indica el volumen de información de diagnóstico recopilada para clientes y servidores de caché. Cada nivel de diagnóstico contiene un conjunto de contadores de rendimiento, registros de eventos y opciones de seguimiento y de volcado de memoria preconfigurados que pueden usarse para supervisar el estado de la aplicación de Caché en rol.

 

Nivel de diagnóstico Datos de diagnóstico recopilados

0

Solo registros del servidor muy críticos o graves.

1

Datos de diagnóstico que ayudan en la evaluación de patrones de uso, del estado del sistema de caché y de cualquier posible error. Este es el nivel de configuración predeterminado.

2

Datos de diagnóstico con una granularidad precisa de todas las solicitudes y de la información importante sobre el sistema.

3

Datos de diagnóstico más detallados y con más información sobre el sistema.

4

Registros más detallados de todas las solicitudes y la información del sistema.

Hay dos tipos de niveles de diagnóstico de almacenamiento en caché que corresponden a los diagnósticos de clientes y servidores de caché. DiagnosticLevel representa los diagnósticos de servidores de caché y ClientDiagnosticLevel representa los diagnósticos de clientes de caché. Cada nivel configura un conjunto diferente de opciones de contadores de rendimiento, registros, seguimiento y volcado de memoria. Los niveles de diagnóstico están configurados en el archivo ServiceConfiguration.cscfg de la aplicación y pueden sustituirse por una aplicación en la nube que se esté ejecutando simplemente con la implementación de un archivo ServiceConfiguration.cscfg actualizado.

En el archivo ServiceConfiguration.cscfg, en la sección de configuración del rol que hospeda el clúster de caché, se especifica el nivel de diagnóstico del servidor de caché para un clúster de caché. Visual Studio agrega esta configuración cuando se habilita el almacenamiento en caché en la pestaña Almacenamiento en caché del rol, mientras que cuando se agrega Cache Worker Role a un proyecto, ya está incluida. El DiagnosticLevel predeterminado es 1 y si no existe ningún DiagnosticLevel para el rol, se usa un DiagnosticLevel de 1. Para cambiar el DiagnosticLevel, cambie la configuración del DiagnosticLevel para el rol en el archivo ServiceConfiguration.cscfg. En el siguiente ejemplo, se muestra la sección WorkerRole1 de un archivo ServiceConfiguration.cscfg con un DiagnosticLevel de 1.

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

En la tabla siguiente se muestran los datos de diagnóstico recopilados por cada nivel de diagnóstico.

 

DiagnosticLevel Datos recopilados

0

  • Nivel de registro: Critical

  • No hay contadores de rendimiento

  • No hay registros de eventos registrados

  • Minivolcados de memoria

1

2

3

4

noteNota
Al ejecutar aplicaciones de Caché en rol en el emulador de Azure, el seguimiento de todas las instancias de rol se recopila en la carpeta *_IN_0, incluso si existen varias instancias de rol. Este es el comportamiento diseñado. Cuando se hospedan aplicaciones de Caché en rol en Azure, el seguimiento de cada instancia de rol se sitúa en las respectivas carpetas de las instancias de rol.

En el archivo ServiceConfiguration.cscfg, en la sección de configuración del rol que es el cliente de caché, se especifica el nivel de ClientDiagnosticLevel para un cliente de caché. El paquete NuGet de Caché en rol agrega esta configuración cuando se configura el rol para que actúe como cliente de caché.

noteNota
Para obtener más información sobre la configuración de los clientes de caché mediante el paquete NuGet de Caché en rol, vea Configure a Project for Caching on Roles.

El ClientDiagnosticLevel predeterminado es 1 y si no existe ningún ClientDiagnosticLevel para el rol, se usa un ClientDiagnosticLevel de 1. Para cambiar el ClientDiagnosticLevel, cambie la configuración del ClientDiagnosticLevel para el rol en el archivo ServiceConfiguration.cscfg. En el siguiente ejemplo, se muestra la sección WebRole1 de un archivo ServiceConfiguration.cscfg con un ClientDiagnosticLevel de 1.

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

En la tabla siguiente se muestran los datos de diagnóstico recopilados por cada nivel de diagnóstico del cliente.

noteNota
Las opciones de configuración de volcado de memoria para niveles de diagnóstico de cliente solo son importantes para los clientes de caché que usan las correcciones de compatibilidad (shim) del cliente Memcached. No se recopilan volcados de memoria para clientes que no son Memcache. Para obtener más información sobre las correcciones de compatibilidad (shim) del cliente Memcached, vea Contenedor Memcached para Caché de Azure.

 

ClientDiagnosticLevel Datos recopilados

0

  • Nivel de registro: Critical

  • No hay contadores de rendimiento

  • No hay registros de eventos registrados

  • Minivolcados de memoria

1

2

3

4

noteNota
Al ejecutar aplicaciones de Caché en rol en el emulador de Azure, el seguimiento de todas las instancias de rol se recopila en la carpeta *_IN_0, incluso si existen varias instancias de rol. Este es el comportamiento diseñado. Cuando se hospedan aplicaciones de Caché en rol en Azure, el seguimiento de cada instancia de rol se sitúa en las respectivas carpetas de las instancias de rol.

Para iniciar la recopilación de datos de diagnóstico de almacenamiento en caché, es necesario invocar el siguiente código durante el inicio del rol. Es necesario agregar este código a todos los roles que sean clientes de caché o servidores de caché para recopilar datos sobre el diagnóstico de almacenamiento en caché. Uno de los sitios donde puede hospedar este código es la invalidación OnStart del rol, tal como se muestra en el siguiente ejemplo.

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();
}

El método ConfigureDiagnostics configura la recopilación de datos de diagnóstico de almacenamiento en caché. Si no se llama a este método, no se recopilarán datos de diagnóstico de almacenamiento en caché. Para usar la clase CacheDiagnostics, agregue una referencia al archivo Microsoft.ApplicationServer.Caching.AzureCommon.dll ubicado en C:\Archivos de programa\Microsoft SDKs\Azure\.NET SDK\2012-10\ref\Caching o agregue la siguiente declaración using (o Imports).

using Microsoft.ApplicationServer.Caching.AzureCommon;
noteNota
Si el rol se ha configurado como un cliente de caché mediante el paquete NuGet de Caché en rol, la referencia de ensamblado Microsoft.ApplicationServer.Caching.AzureCommon.dll ya se ha agregado.

Si va a agregar almacenamiento en caché a un rol existente y ya existe un código de configuración de diagnóstico, puede agregar la llamada a ConfigureDiagnostics al código de inicio de diagnóstico existente antes de la llamada a Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.Start.

WarningAdvertencia
Es necesario llamar a ConfigureDiagnostics y a Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.Start para la recopilación de datos de diagnóstico en aplicaciones de Caché en rol. Si no se llama a estos dos métodos al iniciar los roles, no se recopilarán datos de diagnóstico de almacenamiento en caché.

En las siguientes secciones se muestran listas de los contadores de rendimiento que se incluyen en cada nivel de diagnóstico del servidor y del cliente. Se incluye tanto el contador de rendimiento Caché en rol, como . Para obtener una lista completa con descripciones de los contadores de rendimiento de Caché en rol, vea Supervisar Caché en rol (Caché de Azure). Para obtener más información sobre los contadores de rendimiento de , vea Performance Counters in the .NET Framework.

El DiagnosticLevel 1 contiene los siguientes contadores de rendimiento.

  • \Azure Caching:Host\Average Secondary Response Time / operation Microsecond

  • \Azure Caching:Host\Total Data Size Bytes

  • \Azure Caching:Host\Total Client Requests

  • \Azure Caching:Host\Total Read Requests

  • \Azure Caching:Host\Total Object Count

  • \Azure Caching:Host\Total Failure Exceptions

  • \Memory\Available MBytes

  • \Process(CacheService)\Page Faults/sec

    • Al ejecutarlo en el emulador Azure, el nombre del contador es \Process(CacheServiceEmulator)\Page Faults/sec

  • \Processor(_Total)\% Processor Time

  • \.NET CLR Memory(_Global_)\% Time in GC

El DiagnosticLevel 2 contiene los siguientes contadores de rendimiento.

  • \Azure Caching:Host\Average Secondary Response Time / operation Microsecond

  • \Azure Caching:Host\Total Data Size Bytes

  • \Azure Caching:Host\Total Client Requests

  • \Azure Caching:Host\Total Read Requests

  • \Azure Caching:Host\Total Object Count

  • \Azure Caching:Host\Total Failure Exceptions

  • \Processor(_Total)\% Processor Time

  • \.NET CLR Memory(_Global_)\% Time in GC

  • \Azure Caching:Host\Total Read Requests /sec

  • \Azure Caching:Host\Cache Miss Percentage

  • \Azure Caching:Host\Total Primary Data Size Bytes

  • \Azure Caching:Host\Total Allocated Directory Count

  • \Azure Caching:Host\Available Cache Item Percentage

  • \Azure Caching:Host\Total Available Cache Item Count

  • \Azure Caching:Host\Total Notification Delivered

  • \Azure Caching:Host\Total Eviction Runs

  • \Azure Caching:Host\Total Memory Evicted

  • \Azure Caching:Host\Total Evicted Objects

  • \Azure Caching:Host\Total Expired Objects

  • \Azure Caching:Host\Total Requests Served

  • \Azure Caching:Host\Total Write Operations

  • \.NET CLR LocksAndThreads(*)\Contention Rate / sec

  • \.NET CLR Memory(*)\% Time in GC

  • \.NET CLR Memory(*)\Gen 0 heap size

  • \.NET CLR Memory(*)\Gen 1 heap size

  • \.NET CLR Memory(*)\Gen 2 heap size

  • \.NET CLR Memory(*)\Large Object Heap size

  • \Memory\Available MBytes

  • \Process(CacheService)\Page Faults/sec

    • Al ejecutarlo en el emulador Azure, el nombre del contador es \Process(CacheServiceEmulator)\Page Faults/sec

  • \Process(*)\Thread Count

  • \Process(*)\Working Set

  • \Process(*)\Virtual Bytes

  • \Process(*)\Elapsed Time

  • \Process(*)\Page Faults/sec

  • \Network Interface(*)\Current Bandwidth

  • \Network Interface(*)\Bytes Total/sec

  • \Azure Caching:Host\Total Connections Count

  • \Azure Caching:Host\Average Quorum Response Time / operation Microsecond

  • \Azure Caching:Host\Total Client Requests /sec

  • \Azure Caching:Host\Total Notification Delivered

  • \Azure Caching:Host\Total Get Misses

  • \Azure Caching:Host\Total Write Operations /sec

El DiagnosticLevel 3 y el DiagnosticLevel 4 contienen los siguientes contadores de rendimiento.

  • \.NET CLR LocksAndThreads(*)\Contention Rate / sec

  • \.NET CLR LocksAndThreads(*)\Current Queue Length

  • \.NET CLR Memory(*)\# Bytes in all Heaps

  • \.NET CLR Memory(*)\# Gen 0 Collections

  • \.NET CLR Memory(*)\# Gen 1 Collections

  • \.NET CLR Memory(*)\# Gen 2 Collections

  • \.NET CLR Memory(*)\% Time in GC

  • \.NET CLR Memory(*)\Gen 0 heap size

  • \.NET CLR Memory(*)\Gen 1 heap size

  • \.NET CLR Memory(*)\Gen 2 heap size

  • \.NET CLR Memory(*)\Large Object Heap size

  • \.NET CLR Exceptions(*)\# of Exceps Thrown

  • \Memory\Available MBytes

  • \Memory\Page Faults/sec

  • \PhysicalDisk(_Total)\% Idle Time

  • \PhysicalDisk(_Total)\Avg. Disk Queue Length

  • \Processor(_Total)\% Privileged Time

  • \Processor(_Total)\% Processor Time

  • \System\Context Switches/sec

  • \System\Processor Queue Length

  • \Process(*)\% Processor Time

  • \Process(*)\Handle Count

  • \Process(*)\Private Bytes

  • \Process(*)\Thread Count

  • \Process(*)\Working Set

  • \Process(*)\Virtual Bytes

  • \Process(*)\Elapsed Time

  • \Process(*)\Page Faults/sec

  • \Process(CacheService)\Page Faults/sec

    • Al ejecutarlo en el emulador , el nombre del contador es \Process(CacheServiceEmulator)\Page Faults/sec

  • \Network Interface(*)\Current Bandwidth

  • \Network Interface(*)\Packets/sec

  • \Network Interface(*)\Bytes Sent/sec

  • \Network Interface(*)\Bytes Received/sec

  • \Network Interface(*)\Bytes Total/sec

  • \System\System Up Time

  • \Azure Caching:Host\Available Cache Item Percentage

  • \Azure Caching:Host\Total Connections Count

  • \Azure Caching:Host\Available Directory Percentage

  • \Azure Caching:Host\Available Memory Percentage

  • \Azure Caching:Host\Average Quorum Response Time / operation Microsecond

  • \Azure Caching:Host\Average Secondary Response Time / operation Microsecond

  • \Azure Caching:Host\Cache Miss Percentage

  • \Azure Caching:Host\Gateway Process Time

  • \Azure Caching:Host\Gateway Failure Percentage

  • \Azure Caching:Host\Request Processing Error Percentage

  • \Azure Caching:Host\Total Allocated Cache Item Count

  • \Azure Caching:Host\Total Allocated Directory Count

  • \Azure Caching:Host\Total Available Cache Item Count

  • \Azure Caching:Host\Total Available Directory Count

  • \Azure Caching:Host\Total Available Memory Bytes

  • \Azure Caching:Host\Total Cache Misses

  • \Azure Caching:Host\Total Cache Misses /sec

  • \Azure Caching:Host\Total Client Requests

  • \Azure Caching:Host\Total Client Requests /sec

  • \Azure Caching:Host\Total Data Size Bytes

  • \Azure Caching:Host\Total Evicted Objects

  • \Azure Caching:Host\Total Eviction Runs

  • \Azure Caching:Host\Total Expired Objects

  • \Azure Caching:Host\Total Failure Exceptions

  • \Azure Caching:Host\Total Failure Exceptions /sec

  • \Azure Caching:Host\Total Memory Evicted

  • \Azure Caching:Host\Total Notification Delivered

  • \Azure Caching:Host\Total Notification Delivered /sec

  • \Azure Caching:Host\Total Notification Poll Requests

  • \Azure Caching:Host\Total Notification Poll Requests /sec

  • \Azure Caching:Host\Total Object Count

  • \Azure Caching:Host\Total Objects Returned

  • \Azure Caching:Host\Total Objects Returned /sec

  • \Azure Caching:Host\Total Primary Data Size Bytes

  • \Azure Caching:Host\Total Get Misses

  • \Azure Caching:Host\Total Get Misses /sec

  • \Azure Caching:Host\Total Get Requests

  • \Azure Caching:Host\Total Get Requests /sec

  • \Azure Caching:Host\Total GetAndLock Requests

  • \Azure Caching:Host\Total GetAndLock Requests /sec

  • \Azure Caching:Host\Total Memory Evicted

  • \Azure Caching:Host\Total Read Requests

  • \Azure Caching:Host\Total Read Requests /sec

  • \Azure Caching:Host\Total Requests Served

  • \Azure Caching:Host\Total Requests Served /sec

  • \Azure Caching:Host\Total Retry Exception

  • \Azure Caching:Host\Total Retry Exception /sec

  • \Azure Caching:Host\Total Secondary Data Size Bytes

  • \Azure Caching:Host\Total Successful GetAndLock Requests

  • \Azure Caching:Host\Total Successful GetAndLock Requests /sec

  • \Azure Caching:Host\Total Write Operations

  • \Azure Caching:Host\Total Write Operations /sec

El ClientDiagnosticLevel 1 contiene los siguientes contadores de rendimiento.

  • \Azure Caching:Client Host\Failure Exceptions

  • \Azure Caching:Client Host\Total Local Cache Hits

  • \Azure Caching:Client Host\Current Server Connections

  • \Azure Caching:Client Host\Average Get Latency / operation Microsecond

  • \Azure Caching:Client Host\Average Put Latency / operation Microsecond

  • \Azure Caching:Client Host\Retry Exceptions

  • \Azure Caching:Client Host\Timeout Exceptions

  • \Azure Caching:Client Host\Requests

  • \Processor(_Total)\% Processor Time

  • \.NET CLR Memory(_Global_)\% Time in GC

  • \Azure Caching:Client(*)\Failure Exceptions

  • \Azure Caching:Client(*)\Total Local Cache Hits

  • \Azure Caching:Client(*)\Current Server Connections

  • \Azure Caching:Client(*)\Average Get Latency / operation Microsecond

  • \Azure Caching:Client(*)\Average Put Latency / operation Microsecond

  • \Azure Caching:Client(*)\Retry Exceptions

  • \Azure Caching:Client(*)\Timeout Exceptions

  • \Azure Caching:Client(*)\Requests

Los ClientDiagnosticLevel 2, 3 y 4 contienen los siguientes contadores de rendimiento.

  • \Azure Caching:Client Host\Requests

  • \Azure Caching:Client Host\Requests / sec

  • \Azure Caching:Client Host\Server Responses Dropped / sec

  • \Azure Caching:Client Host\Failure Exceptions

  • \Azure Caching:Client Host\Failure Exceptions / sec

  • \Azure Caching:Client Host\Average Get Latency / operation Microsecond

  • \Azure Caching:Client Host\Average Put Latency / operation Microsecond

  • \Azure Caching:Client Host\Average Get Latency (Network) / operation Microsecond

  • \Azure Caching:Client Host\Read Requests

  • \Azure Caching:Client Host\Write Requests

  • \Azure Caching:Client Host\Bytes Received / sec

  • \Azure Caching:Client Host\Bytes Sent / sec

  • \Azure Caching:Client Host\Current Server Connections

  • \Azure Caching:Client Host\Local Cache Filled Percentage

  • \Azure Caching:Client Host\Local Cache Hits Percentage

  • \Azure Caching:Client Host\Total Local Cache Hits

  • \Azure Caching:Client Host\Total Local Cache Objects

  • \Azure Caching:Client Host\Total Notifications Received

  • \Azure Caching:Client Host\Timeout Exceptions

  • \Azure Caching:Client Host\Timeout Exceptions / sec

  • \Azure Caching:Client Host\Retry Exceptions

  • \Azure Caching:Client Host\Retry Exceptions / sec

  • \Azure Caching:Client Host\Total Connection Requests Failed

  • \Azure Caching:Client Host\Network Exceptions

  • \Azure Caching:Client Host\Network Exceptions / sec

  • \Azure Caching:Client Host\Current Waiting Requests

  • \Processor(_Total)\% Processor Time

  • \.NET CLR Memory(_Global_)\% Time in GC

  • \Azure Caching:Client(*)\Requests

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

  • \Azure Caching:Client(*)\Server Responses Dropped / sec

  • \Azure Caching:Client(*)\Failure Exceptions

  • \Azure Caching:Client(*)\Failure Exceptions / sec

  • \Azure Caching:Client(*)\Average Get Latency / operation Microsecond

  • \Azure Caching:Client(*)\Average Put Latency / operation Microsecond

  • \Azure Caching:Client(*)\Average Get Latency (Network) / operation Microsecond

  • \Azure Caching:Client(*)\Read Requests

  • \Azure Caching:Client(*)\Write Requests

  • \Azure Caching:Client(*)\Bytes Received / sec

  • \Azure Caching:Client(*)\Bytes Sent / sec

  • \Azure Caching:Client(*)\Current Server Connections

  • \Azure Caching:Client(*)\Local Cache Filled Percentage

  • \Azure Caching:Client(*)\Local Cache Hits Percentage

  • \Azure Caching:Client(*)\Total Local Cache Hits

  • \Azure Caching:Client(*)\Total Local Cache Objects

  • \Azure Caching:Client(*)\Total Notifications Received

  • \Azure Caching:Client(*)\Timeout Exceptions

  • \Azure Caching:Client(*)\Timeout Exceptions / sec

  • \Azure Caching:Client(*)\Retry Exceptions

  • \Azure Caching:Client(*)\Retry Exceptions / sec

  • \Azure Caching:Client(*)\Total Connection Requests Failed

  • \Azure Caching:Client(*)\Network Exceptions

  • \Azure Caching:Client(*)\Network Exceptions / sec

  • \Azure Caching:Client(*)\Current Waiting Requests

Vea también

¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios
Mostrar:
© 2015 Microsoft