Срок действия
Microsoft AppFabric 1.1 для Windows Server использует срок действия для управления временем хранения объектов в кэше. Сам срок действия является достаточно простой частью Кэш AppFabric, но может возникнуть необходимость устранения неполадок, связанных с параметрами срока действия. Дополнительные сведения об истечении срока см. в разделе Окончание срока действия и вытеснение.
Диагностика ошибок срока действия
По мере добавления объектов в кэш объем памяти, используемый в кэше, приближается к нижнему предельному значению. Параметры CacheSize
и LowWatermark
можно просмотреть с помощью команды Windows PowerShell Get-CacheHostConfig
. Текущий объем используемой памяти узла отображается в счетчике системного монитора AppFabric Caching:Host | Общий объем данных в байтах. После достижения нижнего предельного значения кластер начинает периодически удалять элементы с истекшим сроком действия из кэша. При достижении верхнего предельного значение кластер также удаляет объекты с истекшим сроком действия из кэша и выполняет вытеснение редко используемых элементов.
Характеристики поведения кэша в системном мониторе не позволяют точно определить проблемы с параметрами истечения срока действия. Следует просматривать параметры истечения срока годности по умолчанию для каждого кэша, чтобы определить, подходят ли параметры истечения срока для типа данных в кэше. Существуют две основных причины ошибок:
Слишком короткий срок действия В этом случае приложения могут столкнуться с большим количеством промахов, которые требуют повторного добавления элементов в кэш.
Слишком продолжительный срок действия Если кластер имеет большое количество вставок или чересчур продолжительный срок действия, то верхнее предельное значение может быть достигнуто перед истечением срока действия. Это вызывает вытеснение. Дополнительные сведения о вытеснении см. в разделе Вытеснение.
Следующий скрипт Windows PowerShell отображает каждый из кэшей, его параметры истечения срока действия и срок в минутах.
$caches = Get-Cache -MaxRegions 0
foreach($cache in $caches) { Write-Host $cache.CacheName (Get-CacheConfig $cache.CacheName).IsExpirable (Get-CacheConfig $cache.CacheName).TimeToLive }
Ниже приведен пример результатов выполнения этого скрипта.
Cache1 True 10
Cache2 True 10
Cache3 True 1
Cache4 False 10
default True 10
На этом примере видно, что в большинстве кэшей используются параметры по умолчанию: срок действия используется и равен 10 минутам. В кэше Cache3
срок действия используется, но составляет одну минуту. Следует просмотреть клиенты Cache3
и определить, хватает ли им одной минуты для получения преимуществ от кэширования. В кэше Cach4
срок действия не используется, поэтому значение в 10 минут не применяется. Просмотрите клиенты Cache4
и определите, обосновано ли отключение срока действия в этом кэше. Также следует изучить размер кэша Cache4
, чтобы определить, имеются ли в нем большие объемы данных, которые могут превысить верхнее предельное значение уровня памяти узла.
Важно!
Несмотря на то, что эти параметры имеют значения по умолчанию, приложения могут определять срок действия добавляемых ими элементов. Если в приложении указывается значение срока действия для конкретного элемента, то указанное значение переопределяет параметр кэша. Кроме того, если приложение блокирует элемент в кэше, то этот элемент остается в нем даже после истечения срока действия.
Устранение ошибок срока действия
Если необходимо изменить параметры срока действия, можно использовать команду Windows PowerShell Set-CacheConfig
для изменения параметров срока действия. Следующая команда изменяет параметры срока действия для Cache1
, разрешает его использование и устанавливает срок равным 5 минутам.
Set-CacheConfig Cache1 -Expirable true -TimeToLive 5
Если параметры срока действия контролируются приложением, то разработчику необходимо изменить приложение для настройки времени действия или состояния блокировки кэшированных элементов.
См. также
Основные понятия
2012-03-05