Caducidad
Microsoft AppFabric 1.1 para Windows Server usa la expiración para controlar la duración de los objetos en la memoria caché. La propia expiración es una parte ordinaria de la arquitectura del almacenamiento en caché de Almacenamiento en caché de AppFabric, pero es posible que tenga que solucionar problemas relacionados con la configuración de la expiración. Para obtener más información sobre la caducidad, vea Caducidad y expulsión.
Diagnóstico de problemas de expiración
Según se van agregando objetos a la memoria caché, la memoria usada por la memoria caché se va aproximando al límite mínimo de memoria. Puede ver la configuración CacheSize
y LowWatermark
con el comando Get-CacheHostConfig
de Windows PowerShell. Puede ver la cantidad de memoria actual usada en un host de caché observando el contador Almacenamiento en caché de AppFabric:Host | Total de bytes de tamaño de datos en el Monitor de rendimiento. Una vez alcanzado el límite mínimo de memoria, el clúster de caché quitará periódicamente los elementos expirados de la memoria caché. Cuando se alcance el límite máximo de memoria, el clúster de caché también quita los objetos expirados de la memoria caché, además de expulsar los elementos usados hace más tiempo.
Resulta difícil identificar problemas específicos con la configuración de expiración con solo observar el comportamiento de la memoria caché con herramientas tales como el Monitor de rendimiento. En lugar de ello, es mejor ver la configuración de expiración predeterminada para cada caché con el fin de determinar si la configuración de expiración es adecuada para el tipo de datos de la memoria caché. Hay dos consideraciones principales:
¿Es demasiado breve el tiempo de expiración? En este caso, las aplicaciones podrían sufrir más pérdidas de caché que requerirían volver a agregar elementos a la memoria caché.
¿Es demasiado prolongado el tiempo de expiración? Si el clúster de caché tiene un elevado volumen de inserciones o tiempos de expiración muy breves, es posible que se alcance el límite máximo de memoria antes de que los elementos almacenados en caché hayan expirado. Esto provoca una ejecución de expulsión. Para obtener más información acerca de la expulsión, consulte Expulsión.
El siguiente script de Windows PowerShell muestra cada memoria caché, su configuración de expiración y el tiempo de expiración predeterminado en minutos.
$caches = Get-Cache -MaxRegions 0
foreach($cache in $caches) { Write-Host $cache.CacheName (Get-CacheConfig $cache.CacheName).IsExpirable (Get-CacheConfig $cache.CacheName).TimeToLive }
Considere la salida de ejemplo siguiente del script anterior.
Cache1 True 10
Cache2 True 10
Cache3 True 1
Cache4 False 10
default True 10
En la salida de ejemplo anterior, puede ver que la mayor parte de las memorias caché usan la configuración predeterminada: la expiración está habilitada y el tiempo de expiración es de diez minutos. Cache3
tiene la expiración habilitada, pero el tiempo de expiración es de un minuto. Debe examinar los clientes de Cache3
para ver si un minuto es tiempo suficiente para que estos clientes puedan almacenar en caché los elementos. Cach4
tiene la expiración deshabilitada, por lo que no se aplica el valor de diez minutos. Debe examinar los clientes de Cache4
para ver si hay un motivo válido para deshabilitar la expiración en esta memoria caché. También debe examinar el tamaño de Cache4
para ver si contiene grandes cantidades de datos que podrían contribuir a alcanzar el límite máximo de memoria en el host de caché.
Importante |
---|
Las aplicaciones pueden controlar la expiración o los elementos individuales que agregan incluso si estas opciones de caché muestran los valores predeterminados. Si una aplicación especifica un valor de tiempo de espera para un elemento, dicho valor reemplaza la opción de la caché. Además, si la aplicación bloquea un elemento en la memoria caché, dicho elemento permanece en caché aunque haya expirado. |
Resolución de problemas de expiración
Una vez que haya determinado que la configuración de expiración debe cambiar, puede usar el comando Set-CacheConfig
de Windows PowerShell para cambiar la configuración de expiración. El siguiente comando cambia la configuración de expiración para Cache1
con el fin de habilitar la expiración con un tiempo de expiración de cinco minutos.
Set-CacheConfig Cache1 -Expirable true -TimeToLive 5
Si la configuración de expiración está controlada por una aplicación, un desarrollador debe cambiar la aplicación para ajustar el tiempo de expiración o el estado de bloqueo de los elementos almacenados en caché.
Vea también
Conceptos
Solución de problemas del servidor
2012-03-05