Политика ограничения скорости запросов
Применимо: ✅Microsoft Fabric✅Azure Data Explorer
Политика ограничения скорости запросов группы рабочей нагрузки позволяет ограничить количество одновременных запросов, классифицированных в группу рабочей нагрузки, на группу рабочей нагрузки или на участника.
Ограничения скорости применяются на уровне, определенном
Объект политики
Политика ограничения скорости запросов имеет следующие свойства:
Имя | Поддерживаемые значения | Описание |
---|---|---|
IsEnabled |
true , false |
Указывает, включена ли политика. |
Размах |
WorkloadGroup , Principal |
Область применения ограничения. |
LimitKind |
ConcurrentRequests , ResourceUtilization |
Тип ограничения скорости запроса. |
Свойства | Контейнер свойств | Свойства ограничения скорости запроса. |
Ограничение скорости одновременных запросов
Ограничение скорости запроса типа ConcurrentRequests
включает следующее свойство:
Имя | Тип | Описание | Поддерживаемые значения |
---|---|---|---|
MaxConcurrentRequests | int |
Максимальное количество одновременных запросов. | [0 , 10000 ] |
Заметка
- Если у группы рабочих нагрузок нет указанного ограничения на максимальное число одновременных запросов, то по умолчанию используется максимальное значение
10000
.
Если запрос превышает ограничение на максимальное число одновременных запросов:
- Состояние запроса, представленноекоманд
системной информации, будет . - Сообщение об ошибке будет содержать источник регулирования и превышение емкости.
В следующей таблице показаны несколько примеров одновременных запросов, превышающих максимальное ограничение, и сообщение об ошибке, возвращаемое этими запросами:
Сценарий | Сообщение об ошибке |
---|---|
Регулирование .create table команды, которая была классифицирована в группу рабочих нагрузок default , которая имеет ограничение в 80 одновременных запросов в области группы рабочей нагрузки. |
Команда управления была прервана из-за регулирования. Повторная попытка после некоторого обратного выхода может завершиться успешно. CommandType: TableCreate, емкость: 80, источник: RequestRateLimitPolicy/WorkloadGroup/default. |
Регулируемый запрос, классифицируемый в группу рабочих нагрузок с именем MyWorkloadGroup , которая имеет ограничение в 50 одновременных запросов в области группы рабочей нагрузки. |
Запрос был прерван из-за регулирования. Повторная попытка после некоторого обратного выхода может завершиться успешно. Емкость: 50, источник: RequestRateLimitPolicy/WorkloadGroup/MyWorkloadGroup. |
Регулируемый запрос, классифицируемый в группу рабочей нагрузки с именем MyWorkloadGroup , которая имеет ограничение в 10 одновременных запросов в области субъекта. |
Запрос был прерван из-за регулирования. Повторная попытка после некоторого обратного выхода может завершиться успешно. Емкость: 10, источник: "RequestRateLimitPolicy/WorkloadGroup/MyWorkloadGroup/Principal/aaduser=9e04c4f5-1abd-48d4-a3d2-9f58615b4724; 6ccf3fe8-6343-4be5-96c3-29a128dd9570'. |
- Код ответа HTTP будет
429
. Вложенный код будетTooManyRequests
. - Тип исключения будет
QueryThrottledException
для запросов иControlCommandThrottledException
для команд управления.
Заметка
Ограничение скорости использования ресурсов
Ограничение скорости запроса типа ResourceUtilization
включает следующие свойства:
Имя | Тип | Описание | Поддерживаемые значения |
---|---|---|---|
ResourceKind | ResourceKind |
Ресурс, который требуется ограничить. Если ResourceKind TotalCpuSeconds , ограничение применяется на основе отчетов об использовании ЦП завершенных запросов после выполнения. Запросы, которые сообщают об использовании 0,005 секунд ЦП или ниже, не учитываются. Ограничение (MaxUtilization ) представляет общее количество секунд ЦП, которые могут использоваться запросами в течение указанного периода времени (TimeWindow ). Например, пользователь, выполняющий нерегламентированные запросы, может иметь ограничение в 1000 секунд ЦП в час. Если это ограничение превышено, последующие запросы будут регулироваться даже при одновременном запуске, так как совокупные секунды ЦП превысили определенный предел в течение скользящего периода. |
RequestCount , TotalCpuSeconds |
MaxUtilization | long |
Максимальное количество ресурсов, которые можно использовать. | RequestCount: [1 , 16777215 ]; TotalCpuSeconds: [1 , 828000 ] |
TimeWindow | timespan |
Скользящее окно времени, в течение которого применяется ограничение. | [00:01:00 , 1.00:00:00 ] |
Если запрос превышает ограничение использования ресурсов:
- Состояние запроса, представленноекоманд
системной информации, будет . - Сообщение об ошибке будет содержать источник
регулирования и превышение квоты . Например:
В следующей таблице показаны несколько примеров запросов, превышающих ограничение скорости использования ресурсов, и сообщение об ошибке, возвращаемое этими запросами:
Сценарий | Сообщение об ошибке |
---|---|
Регулируемый запрос, классифицируемый в группу рабочей нагрузки с именем Automated Requests , которая имеет ограничение в 1000 запросов в час в области действия субъекта. |
Запрос был отклонен из-за превышения ограничений квоты. Ресурс: "RequestCount", квота: "1000", TimeWindow: "01:00:00", источник: "RequestRateLimitPolicy/WorkloadGroup/Automated Request/Principal/aadapp=9e04c4f5-1abd-48d4-a3d2-9f58615b4724; 6ccf3fe8-6343-4be5-96c3-29a128dd9570'. |
Регулируемый запрос, классифицируемый в группу рабочих нагрузок с именем Automated Requests , которая имеет ограничение в 2000 секунд ЦП в час в пределах группы рабочей нагрузки. |
Запрос был отклонен из-за превышения ограничений квоты. Ресурс: TotalCpuSeconds, квота: "2000", TimeWindow: "01:00:00", источник: "RequestRateLimitPolicy/WorkloadGroup/Автоматизированные запросы". |
- Код ответа HTTP будет
429
. Вложенный код будетTooManyRequests
. - Тип исключения будет
QuotaExceededException
.
Как согласованность влияет на ограничения скорости
При строгой согласованности ограничение по умолчанию на максимальное число одновременных запросов зависит от номера SKU кластера и вычисляется как: Cores-Per-Node x 10
. Например, кластер, настроенный с помощью узлов Azure D14_v2, где каждый узел имеет 16 виртуальных ядер, будет иметь ограничение по умолчанию 16
x 10
= 160
.
При слабой согласованности эффективное ограничение по умолчанию на максимальное число одновременных запросов зависит от номера SKU кластера и количества головок запросов и вычисляется как: Cores-Per-Node x 10 x Number-Of-Query-Heads
. Например, кластер, настроенный с помощью D14_v2 Azure и 5 голов запросов, где каждый узел имеет 16 виртуальных ядер, будет иметь эффективное ограничение по умолчанию 16
x 10
x 5
= 800
.
При строгой согласованности ограничение по умолчанию на максимальное число одновременных запросов зависит от номера SKU дома событий и вычисляется как: Cores-Per-Node x 10
. Например, в хранилище событий, настроенном с помощью узлов Azure D14_v2, где каждый узел имеет 16 виртуальных ядер, будет иметь ограничение по умолчанию 16
x 10
= 160
.
При слабой согласованности эффективное ограничение по умолчанию на максимальное число одновременных запросов зависит от номера SKU дома событий и количества головок запросов и вычисляется как: Cores-Per-Node x 10 x Number-Of-Query-Heads
. Например, в хранилище событий, настроенном с помощью D14_v2 Azure и 5 голов запросов, где каждый узел имеет 16 виртуальных ядер, будет иметь действующее ограничение по умолчанию 16
x 10
x 5
= 800
.
Дополнительные сведения см. в согласованности запросов.
Группа рабочей нагрузки default
Группа рабочей нагрузки default
имеет следующую политику, определенную по умолчанию. Эту политику можно изменить.
[
{
"IsEnabled": true,
"Scope": "WorkloadGroup",
"LimitKind": "ConcurrentRequests",
"Properties": {
"MaxConcurrentRequests": < Cores-Per-Node x 10 >
}
}
]
Заметка
- При изменении политики для группы рабочих нагрузок
default
необходимо определить ограничение для максимального числа одновременных запросов.
Примеры
Следующие политики позволяют выполнять следующие действия:
- 500 одновременных запросов для группы рабочей нагрузки.
- 25 одновременных запросов на участника.
- 50 запросов на участника в час.
[
{
"IsEnabled": true,
"Scope": "WorkloadGroup",
"LimitKind": "ConcurrentRequests",
"Properties": {
"MaxConcurrentRequests": 500
}
},
{
"IsEnabled": true,
"Scope": "Principal",
"LimitKind": "ConcurrentRequests",
"Properties": {
"MaxConcurrentRequests": 25
}
},
{
"IsEnabled": true,
"Scope": "Principal",
"LimitKind": "ResourceUtilization",
"Properties": {
"ResourceKind": "RequestCount",
"MaxUtilization": 50,
"TimeWindow": "01:00:00"
}
}
]
Следующие политики блокируют все запросы, классифицированные в группу рабочей нагрузки:
[
{
"IsEnabled": true,
"Scope": "WorkloadGroup",
"LimitKind": "ConcurrentRequests",
"Properties": {
"MaxConcurrentRequests": 0
}
},
]
Связанное содержимое
- группы рабочей нагрузки
- ограничения скорости запросов политики применения
- команда .alter-merge workload_group
- команда .create-or-alter workload_group
- команда
.drop workload_group - команда .show workload_group