Кэширование Azure ErrorCode‹ERRCA0017›:SubStatus‹ES0009› Превышено ограничение квоты на этот час

Я работаю над сайтом MVC 3, размещенным в Windows Azure, который настроен на использование DistributedCacheSessionStateStoreProvider для состояния сеанса, который, в свою очередь, использует внутреннее кэширование Azure. Кэш настроен так:

<dataCacheClients>
<dataCacheClient name="default">
  <hosts>
    <host name="test.cache.windows.net" cachePort="XXXX" />
  </hosts>
  <securityProperties mode="Message">
    <messageSecurity authorizationInfo="XXXX">
    </messageSecurity>
  </securityProperties>
  <transportProperties receiveTimeout="45000" />
</dataCacheClient>
 </dataCacheClients>

Провайдер сеанса настроен как

<sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
  <providers>
    <add name="AppFabricCacheSessionStoreProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" cacheName="default" useBlobMode="true" />
  </providers>
</sessionState>

Мы использовали это с апреля, но только недавно начали использовать сеанс для хранения немного большего количества данных. Наш тестовый сервис кэширования занимает 128 МБ, что, как говорят, позволяет 5 одновременных подключений. По данным консоли управления Azure, максимальное использование этой службы в любой момент времени составляет 0,34 МБ.

В наших журналах мы видим, что это исключение появляется довольно часто:

ErrorCode:SubStatus:Произошла временная ошибка. Повторите попытку позже. (Запрос не выполнен, так как вы превысили квоту на этот час. Если вы сталкиваетесь с этим часто, обновите подписку до более высокой). Дополнительная информация: регулирование из-за ресурса: соединения

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

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


person Jeff    schedule 27.07.2011    source источник


Ответы (1)


Вы не ограничиваетесь только использованием хранилища. Вы также ограничены транзакциями в час и пропускной способностью в час. Для кэша 128 МБ:

  • 400 000 транзакций в час
  • 1400 МБ пропускной способности в час

Может быть, вы столкнулись с одним из этих двух граничных условий?

Дополнительные сведения об уровне обслуживания AppFabric Cache см. в этом сообщении в блоге MSDN.

person David Makogon    schedule 27.07.2011
comment
+1 Согласен, если какое-то время работает, то, скорее всего, одна из этих причин. Попробуйте увеличить размер кэша. - person David Steele; 28.07.2011
comment
Хотя я понимаю, что могу увеличить размер кэша, мне трудно понять, как я мог достичь пределов квоты. У нас было 4 человека, которые тестировали, которые, вероятно, обращались к сеансу в общей сложности не более 200 раз (это был примерно 5-минутный период, проходящий определенный процесс). Мы перешли к Microsoft. Будет обновлено, когда основная причина будет определена. - person Jeff; 28.07.2011
comment
Мы больше не занимаемся этим и решили отказаться от службы кэширования Azure. Мысль о том, что как только вы достигнете пределов квоты, вам будет отказано в использовании до тех пор, пока не произойдет ежечасный сброс, для нас неприемлемый риск. Но спасибо за ваш вклад. - person Jeff; 01.08.2011
comment
Джефф, у меня тоже такая же проблема. Мне интересно, каким было ваше альтернативное решение. Спасибо! - person Win; 19.04.2012