Определение порога масштабирования для веб-ролей Azure

Azure охватывает понятие эластичного масштабирования, и я смог достичь этого с помощью своих рабочих ролей. Однако, когда дело доходит до моих веб-ролей (например, приложений MVC), я не уверен, что контролировать (или как), чтобы определить, когда пора увеличивать (или уменьшать) количество запущенных экземпляров. Я предполагаю, что мне нужно контролировать один или несколько счетчиков производительности, но не уверен, с чего начать.

Может ли кто-нибудь порекомендовать лучший метод оценки нагрузки экземпляров веб-роли MVC относительно решений о масштабировании?

1 ответ

Решение

Этот вопрос немного открытый, так как мониторинг обычно зависит от приложения. Было сказано, что:

Начните с простых измерений, которые вы будете просматривать на локальном сервере, представляющих KPI для вашего приложения. Например: Может быть, посмотрите на использование сети. В этой статье TechNet описываются счетчики производительности, собранные System Center для Windows Azure. Например:

  • ASP.NET приложений запросов / сек
  • Байты сетевого интерфейса
  • Поступила в редакцию / сек
  • Отправлено байт сетевого интерфейса / сек
  • Процессор% Общее время процессора
  • Мегабайты, свободные от логического диска
  • LogicalDisk % свободного места
  • Доступная память мегабайт

Вы также можете просмотреть количество запросов в очереди и время ожидания запроса.

Использование сети интересно, так как ваша сетевая карта обеспечивает ок. 100 Мбит / с на ядро ​​и может стать узким местом, даже если процессор и другие ресурсы используются недостаточно. Возможно, вам придется увеличить количество экземпляров для обработки сценариев с высокой пропускной способностью.

Кроме того: я склонен уделять меньше внимания использованию ЦП, хотя его очень легко измерить (и это часто показывается в примерах). Запуск ЦП на почти полной мощности - это обычно хорошая вещь, поскольку вы платите за него и можете использовать как можно больше.

Насколько уменьшается: с этим нужно обращаться немного осторожнее. Вычисления Windows Azure оплачиваются по часам. Скажем, если вы масштабируетесь до дополнительного экземпляра в 11:50 и снова увеличиваете в 12:10, вы только что потратили два процессорных часа. Кроме того: Вы не хотите уменьшать масштаб, затем проводите новые измерения и решаете, что теперь вы можете уменьшить масштаб снова (эффективно создавая постоянный импульс добавления и уменьшения экземпляров). Чтобы упростить задачу, рассмотрим блок автоматического масштабирования приложений (WASABi), который можно найти в корпоративной библиотеке. Здесь есть все правила масштабирования (например, те, которые я только что упомянул), и их очень просто использовать.

Другие вопросы по тегам