Периодическая ошибка при загрузке BLOB-объектов в Azure - PullRequest
0 голосов
/ 31 марта 2012

В моем веб-приложении, работающем на Azure, я, кажется, получаю эти ошибки в журналах событий Windows примерно раз в 10 минут, пока сайт находится под большой нагрузкой

The server encountered an unknown failure: The operation has timed out
Stack Trace:
at Microsoft.WindowsAzure.StorageClient.Tasks.Task`1.get_Result()
at Microsoft.WindowsAzure.StorageClient.RequestWithRetry.RequestWithRetrySyncImpl[TResult](ShouldRetry retryOracle, SynchronousTask`1 syncTask)
at Microsoft.WindowsAzure.StorageClient.CloudBlob.DownloadByteArray(BlobRequestOptions options)

Но это не всегда,время от времени я действительно не знаю, как его диагностировать или даже выяснить, почему это может происходить.

Могу ли я предоставить вам пример кода?Что бы вы хотели увидеть?К сожалению, это приложение под NDA, поэтому я не могу говорить о специфике или отдавать многое.

Я также опубликовал это на форумах MS, и я поделюсь всеми ответами, которые получу на любом сайте.На данный момент это реальная проблема производства, и любая помощь здесь очень ценится.

1 Ответ

0 голосов
/ 31 марта 2012

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

  • Пропускная способность сети. Вы получаете ок. 100 Мбит / с на ядро. Не могли бы вы насыщать пропускную способность сети между вычислениями и хранением? Я предполагаю, что у вас есть несколько ролевых экземпляров, что уменьшило бы вероятность попадания в эту конкретную проблему.
  • Пропускная способность и скорость транзакций. Каждый большой двоичный объект, эффективно хранящийся в своем собственном разделе, имеет цель 60 МБ / с. У вас есть несколько читателей одних и тех же объектов? Если это так, возможно, вы превысили тайм-ауты из-за того, что слишком много читателей запрашивают один и тот же объект, либо по пропускной способности, либо по количеству транзакций (каждый объект имеет цель 500 транзакций в секунду).
  • Коэффициент транзакций для каждого аккаунта. Учетная запись хранения имеет общую цель масштабирования 5000 транзакций в секунду. Получите доступ к достаточному количеству BLOB-объектов одновременно, и вы можете превысить это ограничение.

Подробнее о масштабируемых целях здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...