Регулирование
Если уровень физической памяти на узле кэша Microsoft AppFabric 1.1 для Windows Server становится низким, то узел может войти в состояние регулирования. Кластер кэша не записывает данные в кэш, расположенный на регулируемом узле кэша, до момента повышения уровня доступной физической памяти и устранения нехватки.
Диагностика регулирования
Наиболее очевидным симптомом регулирования является поведение приложений. Попытки записи в кэш будут вызывать ошибки DataCacheException. Дополнительные сведения об этом исключении см. в разделе RetryLater (регулировка). Чтобы убедиться в том, что в кластере возникла проблема регулирования, используйте один или несколько тестов.
Используйте команду Windows PowerShell
Get-CacheClusterHealth
. Проверьте, есть ли узлы кэшей с процентными значениями в категорииThrottled
.Включите журнал Operational в средстве просмотра событий на каждом из узлов кэша и просмотрите его на наличие события 116 «Service in throttled state».
Используйте системный монитор для обслуживания счетчика Память | Доступно мегабайт на каждом из узлов. Если это значение опускается ниже 15% от общего объема памяти, то узел кэша переходит в состояние регулирования. Регулирование также возникает при приближении уровня памяти на 4% к значению
CacheSize
.
Обратите внимание на то, что сервер в состоянии регулирования будет чаще выполнять вытеснение. Дополнительные сведения о проблемах с вытеснением см. в разделе Вытеснение.
Примечание
Дополнительные сведения об описанных средствах см. в разделе Средства наблюдения за работоспособностью (кэширование в AppFabric 1.1).
Устранение регулирования
Перед выбором метода устранения регулирования следует понять причину возникновения этого состояния. В приведенной ниже таблице описана возможная причина и рекомендуемое решение.
Причина регулирования | Описание и устранение |
---|---|
Другие процессы используют слишком много памяти. |
Другие процессы узла кэша могут использовать большие объемы памяти. Это может вызвать нехватку памяти в зависимости от объема памяти, зарезервированного для службы кэширования. Счетчик Процесс | Байты исключительного пользования в системном мониторе позволяет просмотреть память, используемую для каждого из процессов, чтобы определить подобное состояние. Если служба кэширования DistributedCacheService.exe не является основным потребителем памяти, найдите другие процессы, потребляющие большую долю памяти. Одним из решений является перемещение проблемных процессов на другие серверы, которые не являются узлами кэша. Кроме того, к компьютеру можно добавить дополнительную память. Примечание Несмотря на то, что команда |
Служба кэширования использует слишком много памяти. |
Для определения этой ситуации можно использовать диспетчер задач или системный монитор и просмотреть объем памяти, используемый службой кэширования DistributedCacheService.exe. Возможно, что в одном или нескольких кэшах отключен срок действия и/или вытеснение. Это может служить причиной нехватки памяти. Чтобы определить кэши кластера, используйте команду Windows PowerShell |
Несобранная память .NET. |
Несмотря на то, что сборка мусора .NET выполняется автоматически, в некоторых случаях несобранная память в промежутках между сборками может вызывать нехватку памяти. В этом случае следует использовать команду Windows PowerShell |
Настраиваемые области. |
Приложения могут создавать настраиваемые области с помощью метода CreateRegion. Эти регионы всегда существуют в виде единицы в определенном узле кэша. Если приложение сохраняет большие объемы данных в одну область, то один из узлов может перейти в состояние регулирования даже в том случае, если на других узлах достаточно памяти. Одним из решений этой проблемы является добавление памяти к каждому из узлов кластера, так как невозможно точно определить, какой из узлов выбирается для настраиваемой области. Другим решением является изменение структуры приложения для хранения меньшего объема данных в области или создание и использование нескольких областей. |
Таблицы хэш-кодов тегов |
Некоторые методы Кэш AppFabric позволяют хранить элементы в кэше со связанными тегами. При использовании тегов создаются внутренние таблицы хэш-кодов, которые не удаляются даже после удаления связанных элементов. Это не утечка памяти, но может являться сопутствующим фактором, повышающим общий уровень использования памяти службой Кэш AppFabric. Если приложение использует изменяющиеся теги, это также может повышать нагрузку на память. |
См. также
Основные понятия
2012-03-05