Проблемы с производительностью при использовании кэширования AppFabric

Я обнаружил, что когда кеш AppFabric подвергается большой нагрузке, это приводит к непредсказуемому поведению приложения.

Кто-нибудь испытал что-то подобное? Есть какие-нибудь мысли об идеальной конфигурации для AppFabric?


person Community    schedule 10.10.2011    source источник
comment
можете ли вы описать свою конфигурацию и что это за непредсказуемое поведение?   -  person Davide Piras    schedule 10.10.2011
comment
Производительность AppFabric резко снижается из-за высокой пропускной способности на одном сервере кэширования, ограничении ОЗУ 128 МБ, 8 ядрах, SQL-сервере, оптимистичном кэшировании. Службы кэширования AppFabric используются приложением ASP.NET.   -  person    schedule 10.10.2011
comment
сколько данных вы кешируете? почему только 128 МБ ограничивают службу appFabric?   -  person Davide Piras    schedule 10.10.2011
comment
Элементы в кеше не удаляются, когда кеш заполнен. Элементы в кеше иногда удаляются немедленно.   -  person    schedule 10.10.2011
comment
Нет конкретной причины только 128 МБ. Предполагается, что элементы будут выселены по мере необходимости. Сотни МБ проталкиваются через кеш.   -  person    schedule 11.10.2011


Ответы (2)


Похоже, ограничения, которые вы применили к AppFabric, являются конечной причиной вашей проблемы с производительностью. Тем не менее, вы также можете убедиться, что вы настроили channelOpenTimeout и requestTimeout на некоторые подходящие значения - значения по умолчанию довольно высоки, и во многих случаях было бы предпочтительнее повторно прочитать данные из вашего хранилища данных, а не ждать AppFabric для ответа.

  <dataCacheClient channelOpenTimeout="5" requestTimeout="1000">
    <!-- cache host(s) -->
    <hosts>
      <host name="localhost" cachePort="22233" />
    </hosts>
  </dataCacheClient>
person s1mm0t    schedule 18.10.2011
comment
Что произойдет, если у меня будет ограничение 128 и я попытаюсь кэшировать элемент размером 150 МБ? - person ; 19.10.2011

Максимальный размер объекта, который может кэшироваться, составляет 8 МБ (по умолчанию). Вы можете изменить его с помощью расширенных свойств конфигурации, если ваше производственное приложение будет кэшировать объекты такого размера. По поводу другого вопроса: что произойдет, если мы попытаемся закачать 150 МБ данных в кеш размером 128 МБ. 1. Объекты будут удалены с использованием LRU с максимальной эффективностью, а новые объекты заменят их. 2. Если входящая скорость выше, чем скорость вытеснения, кеш может быть ограничен, блокируя все записи на некоторое время.

person RohitK    schedule 25.10.2011