Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Автомасштабирование обеспечивает правильное количество запущенных ресурсов для обработки нагрузки в вашем приложении. Он добавляет ресурсы для обработки увеличения нагрузки, а также экономит деньги путем удаления ресурсов, которые неактивны. Дополнительные сведения о функции автомасштабирования Azure Monitor см. в разделе Обзор автомасштабирования в Microsoft Azure.
Service Bus Обмен сообщениями уровня "Премиум" обеспечивает изоляцию ресурсов на уровне ЦП и памяти, чтобы каждая рабочая нагрузка клиента выполнялась изолированно. Контейнер ресурса называется единицей обмена сообщениями. Дополнительные сведения об единицах обмена сообщениями см. в разделе Service Bus Premium Messaging.
С помощью функции автомасштабирования для пространств имен Service Bus премиум-класса можно указать минимальное и максимальное количество единиц обмена сообщениями и автоматически добавлять или удалять их на основе набора правил.
Например, можно реализовать следующие сценарии масштабирования для пространств имен Service Bus с помощью функции автомасштабирования:
- Увеличьте количество сообщений для пространства имен Service Bus, когда потребление процессора для пространства имен превышает 75%.
- Уменьшите единицы обмена сообщениями для пространства имен Service Bus, когда использование ЦП пространства имен опускается до 25%.
- Используйте больше единиц обмена сообщениями в рабочее время и меньше в нерабочее время.
В этой статье показано, как выполнить автоматическое масштабирование пространства имен Service Bus (обновление единиц обмена сообщениями) с помощью портала Azure и шаблона Azure Resource Manager.
Внимание
Эта статья относится только к уровню premium уровня Azure Service Bus.
Настройка с помощью портала Azure
В этом разделе описано, как использовать портал Azure для настройки автомасштабирования единиц обмена сообщениями для пространства имен Service Bus.
Страница параметров автомасштабирования
Сначала выполните следующие действия, чтобы перейти на страницу параметров Autoscale для пространства имен Service Bus.
Войдите на портал Azure.
В строке поиска введите Service Bus выберите Service Bus из списка и нажмите клавишу Enter.
Выберите пространство имен ценовой категории "Премиум" из списка пространств имен.
Перейдите на страницу Масштаб.
Ручное масштабирование
Используйте этот параметр, чтобы задать фиксированное количество единиц обмена сообщениями для пространства имен.
На странице Параметр автомасштабирования выберите параметр Ручное масштабирование, если он еще не выбран.
Для параметра единиц обмена сообщениями выберите количество единиц обмена сообщениями из списка.
На панели инструментов нажмите кнопку Сохранить, чтобы сохранить параметры.
Пользовательское автомасштабирование — используемое по умолчанию условие
Вы можете настроить автоматическое масштабирование единиц обмена сообщениями с помощью условий. Это условие масштабирования выполняется, если ни одно из других условий масштабирования не соответствует. Задайте условие по умолчанию одним из следующих способов:
- Масштабирование на основе метрик, таких как использование ЦП или памяти
- Масштабирование до определенного количества единиц обмена сообщениями
Вы не можете задать расписание для автомасштабирования в определенные дни или диапазоны дат для условия по умолчанию. Это условие масштабирования выполняется, если ни одно из других условий масштабирования с расписаниями не совпадает.
Внимание
Память и ЦП являются важными ресурсами при настройке автомасштабирования. Установите правила масштабирования и уменьшения масштаба для обоих.
Примечание.
Чтобы повысить пропускную способность получения, Service Bus сохраняет некоторые сообщения в кэше. Service Bus обрезает кэш только в том случае, если использование памяти превышает определенное пороговое значение, например 80%. Если сущность отправляет сообщения, но не получает их, кэшированные сообщения отражают увеличение использования памяти. Как правило, это условие не является проблемой, так как Service Bus обрезает кэш при необходимости, что в конечном итоге приводит к снижению использования памяти. Тем не менее, так как использование памяти может быстро увеличиться, увеличьте масштаб на 60% памяти, чтобы предотвратить прерывания обработки сообщений.
Масштабировать на основе метрической системы
Следующая процедура показывает, как добавить условие для автоматического увеличения числа единиц сообщений (масштабирование наружу), когда загрузка ЦП превышает 75 %, и уменьшения числа единиц сообщений (масштабирование внутрь), когда загрузка ЦП ниже 25 %. Приращения выполняются от 1 до 2, от 2 до 4, от 4 до 8 и от 8 до 16. Аналогичным образом, уменьшение выполняется от 16 до 8, от 8 до 4, от 4 до 2 и от 2 до 1.
В параметре автомасштабирования выберите настраиваемый автоматический масштаб для параметра "Выбрать способ масштабирования ресурса ".
В разделе по умолчанию страницы введите имя условия по умолчанию. Выберите значок с изображением карандаша, чтобы изменить текст.
Для параметра Режим масштабирования выберите значение Масштабировать на основе метрики.
Выберите + Добавить правило.
В правиле масштабирования выполните следующие действия.
Выберите метрику в раскрывающемся списке Имя метрики. В этом примере выберите ЦП.
Выберите оператор и пороговые значения. В этом примере они больше и 75 для порога метрики, чтобы вызвать действие масштабирования.
Выберите операцию в разделе Действие. В данном примере выберите Увеличить.
Затем нажмите кнопку "Добавить".
Примечание.
В этом примере функция автомасштабирования увеличивает количество единиц обмена сообщениями для пространства имен, если общая загрузка ЦП превышает 75 %. Приращения выполняются от 1 до 2, от 2 до 4, от 4 до 8 и от 8 до 16.
Нажмите кнопку +Добавить правило еще раз и выполните следующие действия в правиле масштабирования:
Выберите метрику в раскрывающемся списке Имя метрики. В этом примере выберите ЦП.
Выберите оператор и пороговые значения. В данном примере это Меньше и 25 для Порог метрики, чтобы инициировать действие масштабирования.
Выберите операцию в разделе Действие. В данном примере выберите Уменьшить.
Затем нажмите кнопку "Добавить".
Примечание.
В этом примере функция автомасштабирования уменьшает количество единиц обмена сообщениями для пространства имен, если общая загрузка ЦП ниже 25 %. Уменьшения осуществляются от 16 до 8, от 8 до 4, от 4 до 2 и от 2 до 1.
Задайте минимальное, максимальное и стандартное количество единиц обмена сообщениями.
На панели инструментов нажмите кнопку Сохранить, чтобы сохранить параметр автомасштабирования.
масштабирование до указанного числа единиц обмена сообщениями.
Выполните следующие действия, чтобы настроить правило для масштабирования пространства имен для использования определенного количества единиц обмена сообщениями. Условие по умолчанию применяется, если ни одно из других условий масштабирования не соответствует.
В параметре автомасштабирования выберите настраиваемый автоматический масштаб для параметра "Выбрать способ масштабирования ресурса ".
В разделе по умолчанию страницы введите имя условия по умолчанию.
Для параметра Режим масштабирования выберите значение Масштабирование до определенных единиц обмена сообщениями.
Для параметра Единицы обмена сообщениями выберите число единиц обмена сообщениями по умолчанию.
Пользовательское автомасштабирование — дополнительные условия
В предыдущем разделе показано, как добавить условие по умолчанию для параметра автомасштабирования. В этом разделе показано, как добавить дополнительные условия в параметр автомасштабирования. Для этих дополнительных условий, применяемых не по умолчанию, можно настроить расписание в виде определенных дней недели или диапазона дат.
Масштабировать на основе метрической системы
В параметре автомасштабирования выберите настраиваемый автоматический масштаб для параметра "Выбрать способ масштабирования ресурса ".
В блоке По умолчанию выберите Добавить условие масштабирования.
Введите имя условия.
Убедитесь в том, что выбран параметр Масштабировать на основе метрики.
Выберите + Добавить правило, чтобы добавить правило для увеличения числа единиц обмена сообщениями, когда общая загрузка ЦП превышает 75 %. Выполните действия из раздела, посвященного условию по умолчанию.
Задайте минимальное, максимальное и стандартное количество единиц обмена сообщениями.
Задайте расписание для настраиваемого условия (но не по условию по умолчанию). Можно указать даты начала и окончания условия или выбрать определенные дни (понедельник, вторник и т. д.) недели.
Если выбрать указание дат начала и окончания, выберите часовой пояс, дату и время начала, а также дату и время окончания (как показано на следующем рисунке), чтобы условие было в силе.
Если выбран вариант Повторять в определенные дни, выберите дни недели, часовой пояс, время начала и время окончания, когда должно применяться условие.
масштабирование до указанного числа единиц обмена сообщениями.
В параметре автомасштабирования выберите настраиваемый автоматический масштаб для параметра "Выбрать способ масштабирования ресурса ".
В блоке По умолчанию выберите Добавить условие масштабирования.
Введите имя условия.
Выберите параметр масштабирования для определенных единиц обмена сообщениями в режиме масштабирования.
Выберите число единиц обмена сообщениями из раскрывающегося списка.
Для расписания укажите даты начала и окончания условия или выберите определенные дни (понедельник, вторник и т. д.) недели и времени.
- Если выбрать "Указать даты начала и окончания", выберите часовой пояс, дату и время начала, а также дату окончания и время для того, чтобы условие было в действии.
- Если выбран вариант Повторять в определенные дни, выберите дни недели, часовой пояс, время начала и время окончания, когда должно применяться условие.
Дополнительные сведения о работе параметров автомасштабирования, в частности о выборе профиля или условия и оценке нескольких правил, см. в статье Основные сведения о параметрах автомасштабирования.
Примечание.
- Метрики, которые вы просматриваете, чтобы принимать решения об автомасштабировании, могут быть устаревшими на 5–10 минут. При работе с нагрузками с резкими изменениями используйте более короткий срок для увеличения масштаба и более длительный срок для уменьшения масштаба. Так как плата за Service Bus Premium взимается за каждый час, быстрое уменьшение масштабов не снижает затраты в течение этого часа. Вместо этого поддерживайте период охлаждения при уменьшении масштаба на более чем 30 минут, чтобы убедиться, что уменьшенная рабочая нагрузка устойчива, прежде чем уменьшать масштаб. Это условие гарантирует, что достаточно единиц обработки сообщений для обработки пиковых рабочих нагрузок и избегает преждевременного уменьшения масштаба, что может привести к ограничению.
При уменьшении масштаба задайте пороговое значение меньше половины порогового значения масштабирования. Например, если пороговое значение масштабирования равно 80%, задайте пороговое значение масштабирования до 30–35% (что-то ниже 40%), чтобы предотвратить непрерывное масштабирование вверх и вниз. Этот параметр предотвращает непрерывное переключение автомасштабирования между масштабированием вверх и вниз.
- Если возникают сбои из-за отсутствия емкости (нет доступных единиц обмена сообщениями), вызовите запрос в службу поддержки. Реализация вместимости определяется ограничениями среды и осуществляется наилучшим образом.
История выполнения
Перейдите на вкладку Журнал выполнения на странице Масштаб, чтобы увидеть диаграмму, на которой отображается количество единиц обмена сообщениями, наблюдаемое подсистемой автомасштабирования. Если диаграмма пуста, это означает, что автомасштабирование не настроено или не настроено, но отключено или находится в период охлаждения.
Уведомления
Перейдите на вкладку Уведомление на странице Масштаб, чтобы:
включить отправку уведомлений по электронной почте администраторам, соадминистраторам и дополнительным администраторам;
Разрешить отправку уведомлений по электронной почте на HTTP- или HTTPS-адреса, которые доступны через веб-перехватчики.
Настройка с помощью шаблона Resource Manager
В следующем примере шаблона Resource Manager можно создать пространство имен Service Bus с очередью и настроить параметры автомасштабирования для пространства имен. В этом примере указаны два условия масштабирования.
- Условие масштабирования по умолчанию: увеличивать единицы обмена сообщениями, если средняя загрузка ЦП выше 75% и уменьшать их, если средняя загрузка ЦП ниже 25%.
- Назначать две единицы обмена сообщениями пространству имен в выходные дни.
Шаблон
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"serviceBusNamespaceName": {
"type": "String",
"metadata": {
"description": "Name of the Service Bus namespace"
}
},
"serviceBusQueueName": {
"type": "String",
"metadata": {
"description": "Name of the Queue"
}
},
"autoScaleSettingName": {
"type": "String",
"metadata": {
"description": "Name of the auto scale setting."
}
},
"location": {
"defaultValue": "[resourceGroup().location]",
"type": "String",
"metadata": {
"description": "Location for all resources."
}
}
},
"resources": [{
"type": "Microsoft.ServiceBus/namespaces",
"apiVersion": "2021-11-01",
"name": "[parameters('serviceBusNamespaceName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Premium"
},
"properties": {}
},
{
"type": "Microsoft.ServiceBus/namespaces/queues",
"apiVersion": "2021-11-01",
"name": "[format('{0}/{1}', parameters('serviceBusNamespaceName'), parameters('serviceBusQueueName'))]",
"dependsOn": [
"[resourceId('Microsoft.ServiceBus/namespaces', parameters('serviceBusNamespaceName'))]"
],
"properties": {
"lockDuration": "PT5M",
"maxSizeInMegabytes": 1024,
"requiresDuplicateDetection": false,
"requiresSession": false,
"defaultMessageTimeToLive": "P10675199DT2H48M5.4775807S",
"deadLetteringOnMessageExpiration": false,
"duplicateDetectionHistoryTimeWindow": "PT10M",
"maxDeliveryCount": 10,
"autoDeleteOnIdle": "P10675199DT2H48M5.4775807S",
"enablePartitioning": false,
"enableExpress": false
}
},
{
"type": "Microsoft.Insights/autoscaleSettings",
"apiVersion": "2021-05-01-preview",
"name": "[parameters('autoScaleSettingName')]",
"location": "East US",
"dependsOn": [
"[resourceId('Microsoft.ServiceBus/namespaces', parameters('serviceBusNamespaceName'))]"
],
"tags": {},
"properties": {
"name": "[parameters('autoScaleSettingName')]",
"enabled": true,
"predictiveAutoscalePolicy": {
"scaleMode": "Disabled",
"scaleLookAheadTime": null
},
"targetResourceUri": "[resourceId('Microsoft.ServiceBus/namespaces', parameters('serviceBusNamespaceName'))]",
"profiles": [{
"name": "Increase messaging units to 2 on weekends",
"capacity": {
"minimum": "2",
"maximum": "2",
"default": "2"
},
"rules": [],
"recurrence": {
"frequency": "Week",
"schedule": {
"timeZone": "Eastern Standard Time",
"days": [
"Saturday",
"Sunday"
],
"hours": [
6
],
"minutes": [
0
]
}
}
},
{
"name": "{\"name\":\"Scale Out at 75% CPU and Scale In at 25% CPU\",\"for\":\"Increase messaging units to 4 on weekends\"}",
"capacity": {
"minimum": "1",
"maximum": "8",
"default": "2"
},
"rules": [{
"scaleAction": {
"direction": "Increase",
"type": "ServiceAllowedNextValue",
"value": "1",
"cooldown": "PT5M"
},
"metricTrigger": {
"metricName": "NamespaceCpuUsage",
"metricNamespace": "microsoft.servicebus/namespaces",
"metricResourceUri": "[resourceId('Microsoft.ServiceBus/namespaces', parameters('serviceBusNamespaceName'))]",
"operator": "GreaterThan",
"statistic": "Average",
"threshold": 75,
"timeAggregation": "Average",
"timeGrain": "PT1M",
"timeWindow": "PT10M",
"Dimensions": [],
"dividePerInstance": false
}
},
{
"scaleAction": {
"direction": "Decrease",
"type": "ServiceAllowedNextValue",
"value": "1",
"cooldown": "PT5M"
},
"metricTrigger": {
"metricName": "NamespaceCpuUsage",
"metricNamespace": "microsoft.servicebus/namespaces",
"metricResourceUri": "[resourceId('Microsoft.ServiceBus/namespaces', parameters('serviceBusNamespaceName'))]",
"operator": "LessThan",
"statistic": "Average",
"threshold": 25,
"timeAggregation": "Average",
"timeGrain": "PT1M",
"timeWindow": "PT10M",
"Dimensions": [],
"dividePerInstance": false
}
}
],
"recurrence": {
"frequency": "Week",
"schedule": {
"timeZone": "Eastern Standard Time",
"days": [
"Saturday",
"Sunday"
],
"hours": [
18
],
"minutes": [
0
]
}
}
}
],
"notifications": [],
"targetResourceLocation": "East US"
}
}
]
}
Вы также можете создать пример JSON для ресурса параметра автомасштабирования на портале Azure. После настройки параметров автомасштабирования на портале Azure выберите JSON на панели команд страницы Scale>.
Затем добавьте JSON в раздел resources шаблона Resource Manager, как показано в предыдущем примере.
Дополнительные рекомендации
При использовании параметра настраиваемого автомасштабирования с условием или профилем по умолчанию число единиц обмена сообщениями увеличивается (1, 2, 4, 8, 16) или уменьшается (16, 8, 4, 2, 1) постепенно.
При создании дополнительных условий количество единиц обмена сообщениями может не увеличиваться или уменьшаться постепенно. Предположим, что вы определяете два профиля, как показано в следующем примере. В 06:00 по UTC число единиц обмена сообщениями установлено на 16, а в 21:00 по UTC число уменьшается до 1.
{
"Profiles": [
{
"Name": "standardProfile",
"Capacity": {
"Minimum": "16",
"Maximum": "16",
"Default": "16"
},
"Rules": [],
"Recurrence": {
"Frequency": "Week",
"Schedule": {
"TimeZone": "UTC",
"Days": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"
],
"Hours": [6],
"Minutes": [0]
}
}
},
{
"Name": "outOfHoursProfile",
"Capacity": {
"Minimum": "1",
"Maximum": "1",
"Default": "1"
},
"Rules": [],
"Recurrence": {
"Frequency": "Week",
"Schedule": {
"TimeZone": "UTC",
"Days": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"Hours": [21],
"Minutes": [0]
}
}
}
]
}
Создайте правила, постепенно увеличивающиеся или уменьшающие количество единиц обмена сообщениями.
Следующие шаги
Дополнительные сведения об единицах обмена сообщениями см. в статье "Премиум".