Определение порога масштабирования для веб-ролей Azure
Azure охватывает понятие эластичного масштабирования, и я смог достичь этого с помощью своих рабочих ролей. Однако, когда дело доходит до моих веб-ролей (например, приложений MVC), я не уверен, что контролировать (или как), чтобы определить, когда пора увеличивать (или уменьшать) количество запущенных экземпляров. Я предполагаю, что мне нужно контролировать один или несколько счетчиков производительности, но не уверен, с чего начать.
Может ли кто-нибудь порекомендовать лучший метод оценки нагрузки экземпляров веб-роли MVC относительно решений о масштабировании?
1 ответ
Этот вопрос немного открытый, так как мониторинг обычно зависит от приложения. Было сказано, что:
Начните с простых измерений, которые вы будете просматривать на локальном сервере, представляющих KPI для вашего приложения. Например: Может быть, посмотрите на использование сети. В этой статье TechNet описываются счетчики производительности, собранные System Center для Windows Azure. Например:
- ASP.NET приложений запросов / сек
- Байты сетевого интерфейса
- Поступила в редакцию / сек
- Отправлено байт сетевого интерфейса / сек
- Процессор% Общее время процессора
- Мегабайты, свободные от логического диска
- LogicalDisk % свободного места
- Доступная память мегабайт
Вы также можете просмотреть количество запросов в очереди и время ожидания запроса.
Использование сети интересно, так как ваша сетевая карта обеспечивает ок. 100 Мбит / с на ядро и может стать узким местом, даже если процессор и другие ресурсы используются недостаточно. Возможно, вам придется увеличить количество экземпляров для обработки сценариев с высокой пропускной способностью.
Кроме того: я склонен уделять меньше внимания использованию ЦП, хотя его очень легко измерить (и это часто показывается в примерах). Запуск ЦП на почти полной мощности - это обычно хорошая вещь, поскольку вы платите за него и можете использовать как можно больше.
Насколько уменьшается: с этим нужно обращаться немного осторожнее. Вычисления Windows Azure оплачиваются по часам. Скажем, если вы масштабируетесь до дополнительного экземпляра в 11:50 и снова увеличиваете в 12:10, вы только что потратили два процессорных часа. Кроме того: Вы не хотите уменьшать масштаб, затем проводите новые измерения и решаете, что теперь вы можете уменьшить масштаб снова (эффективно создавая постоянный импульс добавления и уменьшения экземпляров). Чтобы упростить задачу, рассмотрим блок автоматического масштабирования приложений (WASABi), который можно найти в корпоративной библиотеке. Здесь есть все правила масштабирования (например, те, которые я только что упомянул), и их очень просто использовать.