2015-02-17 1 views
2

Привет, У меня есть веб-приложение, развернутое как облачная служба на Windows Azure. Теперь я выполняю некоторые нагрузки/стресс-теста против этого приложения. На портале управления Azure я настроил веб-роль для автоматического масштабирования, когда процессор перейдет на 40%.windows azure automatic scaling

Я запускаю тесты только с одним экземпляром этой веб-роли. По мере прохождения теста я установил, что количество одновременных пользователей увеличится с течением времени до 2000 пользователей.

После запуска теста я подключаюсь через удаленный рабочий стол к экземпляру веб-роли на Azure, и я контролирую использование ЦП. Через 10 минут или около того процессор постоянно на 100% (и на самом деле мои запросы в тесте занимают очень много времени), но если я проверю CPU той же роли на портале управления Azure, , 2 или 6, был пик 70%, но он сразу же опустился (но никогда не значения, которые я вижу в его диспетчере задач, когда я подключен к удаленному рабочему столу) или даже не отображают никакого значения (я иду на страницу панели мониторинга моей облачной службы), что означает, что график больше не обновляется.

Кроме того, в этом и заключается мой вопрос: НИКАКАЯ СКАНИРОВАНИЕ экземпляров веб-роли не выполняется.

Любые идеи, где/что мне не хватает? Не стесняйтесь спрашивать, не является ли мое объяснение неполным.

+0

Автоматического масштабирования основано на включение предварительно настроенных виртуальных машин. Вы это установили? http://azure.microsoft.com/en-us/documentation/articles/cloud-services-how-to-scale/ –

+0

Привет, Дэвид. Я прочитал статью, а не на 100% уверен, что получил ур-точку, но в Страница «Масштабирование» порта управления, я установил диапазон экземпляров от минимум 1 до максимум 6 экземпляров, которые нужно увеличить или уменьшить. –

+0

@ DavidPeden - OP использует веб-роли в облачной службе, а не виртуальные машины , Итак ... использование предварительно сконфигурированных виртуальных машин не является частью уравнения здесь. –

ответ

1

Автомасштабирование по метрике CPU для облачного сервиса или виртуальной машины происходит не так быстро, как вы ожидаете (~ 10 + минута). В этом случае показатель ЦП усредняется по всем экземплярам служб в течение 1 часа. Поэтому ваши действия по автомасштабированию не будут выполняться немедленно.

Подробнее об этом можно узнать и несколько рекомендаций по настройке параметров автомасштабирования here.

Если вы хотите, чтобы затянуть это вверх немного больше, то посмотрите на this post где я покажу, как установить TimeWindow с помощью мониторинга Library Management Service. Вы можете получить ближе к тому, что вы хотите, используя этот подход.

+0

Thanx на самом деле я не нашел никакой информации о том, сколько времени рассчитывал «средний процессор», и я подумал, что это параметр «время ожидания масштабирования» на странице «Масштаб» на портале управления. Выполнение теста в течение 2 часов делало его масштабируемым, как ожидалось. –

2

несколько вещей, чтобы рассмотреть следующие вопросы:

1) Как Рик указал, по умолчанию CPU берется в час в среднем

2) Если вы начинаете только один сервер, а затем AutoScale до 2 , ваш первый сервер будет выдернут из балансировки нагрузки во время операции масштабирования. У вас всегда должно быть как минимум 2 сервера.

3) Не стесняйтесь проверить AzureWatch (ссылка в моем профиле) .. он был разработан для выполнения прилично расширенные сценариев масштабирования и позволяет настроить масштабирование правила без прикосновения API,

+0

Привет @Igorek, можете ли вы подробнее рассказать о 2-й точке?Почему перезагрузка первого экземпляра для операции масштабирования? –

+1

@DirkBoer Необходимо немного уточнить, когда вызывается операция масштабирования, на самом деле выполняется метод API ChangeDeployment. ChangeDeployment выгружает все серверы из балансировки нагрузки по одному (если у вас его есть, вы немного потеряете связь). Кроме того, если вы обрабатываете событие RoleEnvironmentChanging, обязательно предотвратите перезагрузку, когда произойдет событие Топология. – Igorek

+0

Привет @Igorek, спасибо, что нашли время ответить. Мне нужно будет найти дополнительную информацию о событии ChangeDeployment и RoleEnvironmentChanging. Благодаря! :) –