Vencimento
O Microsoft AppFabric 1.1 para Windows Server usa a expiração para controlar o ciclo de vida de objetos no cache. A expiração em si é uma parte comum da arquitetura de Cache do AppFabric, mas convém você solucionar problemas relacionados às configurações de expiração. Para obter mais informações sobre expiração, consulte Expiração e remoção.
Diagnosticando problemas de expiração
À medida que objetos são adicionados ao cache, a memória usada pelo cache se aproxima da marca d'água baixa de memória. Você pode ver as configurações de CacheSize
e de LowWatermark
com o comando Get-CacheHostConfig
do Windows PowerShell. Você pode ver a quantidade atual de memória usada em um host de cache observando o contador AppFabric Caching:Host | Total de Bytes do Tamanho dos Dados no Monitor de Desempenho. Depois que a marca d'água baixa de memória for atingida, o cluster de cache removerá periodicamente os itens expirados do cache. Quando a marca d'água alta de memória for atingida, o cluster de cache também removerá os objetos expirados do cache, além de remover os itens menos usados recentemente.
É difícil identificar problemas específicos com as configurações de expiração observando apenas o comportamento do cache com ferramentas como o Monitor de Desempenho. Em vez disso, é melhor exibir as configurações padrão de expiração de cada cache para determinar se as configurações de expiração são adequadas para o tipo de dados no cache. Há duas considerações principais:
O prazo de expiração é muito curto? Neste caso, os aplicativos podem ter mais perdas de cache que exijam nova adição de itens ao cache.
O prazo de expiração é muito longo? Se o cluster de cache tiver um alto volume de inserções ou prazos de expiração muito longos, será possível que a marca d'água alta de memória seja atingida antes da expiração dos itens armazenados em cache. Isso leva a uma execução de remoção. Para obter mais informações sobre remoção, consulte Remoção.
O script a seguir do Windows PowerShell exibe cada cache, sua configuração de expiração e o tempo padrão de expiração em 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 a seguinte saída de exemplo do script anterior.
Cache1 True 10
Cache2 True 10
Cache3 True 1
Cache4 False 10
default True 10
Na saída de exemplo anterior, você pode ver se a maioria dos caches usa configurações padrão: a expiração está habilitada e o tempo de expiração são dez minutos. Cache3
tem a expiração habilitada, mas o tempo de expiração é um minuto. Você deve examinar os clientes de Cache3
para ver se um minuto é tempo suficiente para esses clientes obterem o benefício de armazenar os itens em cache. Cach4
tem a expiração desabilitada, portanto o valor de dez minutos não se aplica. Você deve examinar os clientes de Cache4
para ver se há um motivo válido para desabilitar a expiração desse cache. Você também deve examinar o tamanho de Cache4
para ver se ele contém grandes quantidades de dados que poderão contribuir para atingir a marca d'água alta de memória no host de cache.
Importante
Embora essas configurações de cache mostrem os valores padrão, os aplicativos podem controlar a expiração em itens individuais que eles adicionam. Se um aplicativo especificar um valor de tempo limite para um item, esse valor substituirá a configuração do cache. Além disso, se o aplicativo bloquear um item no cache, esse item permanecerá no cache mesmo se tiver expirado.
Resolvendo problemas de expiração
Depois que tiver determinado se as configurações de expiração devem ser alteradas, você poderá usar o comando Set-CacheConfig
do Windows PowerShell para alterar as configurações de expiração. O comando a seguir altera as configurações de expiração de Cache1
a fim de habilitar o tempo de expiração para cinco minutos.
Set-CacheConfig Cache1 -Expirable true -TimeToLive 5
Se as configurações de expiração estiverem sendo controladas por um aplicativo, o desenvolvedor deverá alterar o aplicativo para ajustar o tempo de expiração ou o estado de bloqueio dos itens armazenados em cache.
Consulte também
Conceitos
Solucionando problemas do servidor
2012-03-05