Política de limite de taxa de pedidos
A política de limite de taxa de pedidos do grupo de cargas de trabalho permite-lhe limitar o número de pedidos simultâneos classificados no grupo de cargas de trabalho, por grupo de cargas de trabalho ou por principal.
Os limites de taxa são impostos ao nível definido pela política de imposição de Limites de taxa de pedidos do grupo de cargas de trabalho.
O objeto de política
Uma política de limite de taxa de pedidos tem as seguintes propriedades:
Name | Valores suportados | Description |
---|---|---|
IsEnabled | true , false |
Indica se a política está ativada ou não. |
Âmbito | WorkloadGroup , Principal |
O âmbito ao qual se aplica o limite. |
LimitKind | ConcurrentRequests , ResourceUtilization |
O tipo de limite de taxa de pedidos. |
Propriedades | Saco de propriedades | Propriedades do limite de taxa de pedidos. |
Limite de taxa de pedidos simultâneos
Um limite de taxa de pedido do tipo ConcurrentRequests
inclui a seguinte propriedade:
Nome | Tipo | Descrição | Valores Suportados |
---|---|---|---|
MaxConcurrentRequests | int |
O número máximo de pedidos simultâneos. | [0 , 10000 ] |
Nota
- Se um grupo de cargas de trabalho não tiver um limite especificado nos pedidos simultâneos máximos, está sujeito ao valor máximo predefinido de
10000
.
Quando um pedido excede o limite no número máximo de pedidos simultâneos:
- O estado do pedido, conforme apresentado pelos comandos de informações do sistema, será
Throttled
. - A mensagem de erro incluirá a origem da limitação e a capacidade que foi excedida.
A tabela seguinte mostra alguns exemplos de pedidos simultâneos que excedem o limite máximo e a mensagem de erro devolvida por estes pedidos:
Scenario | Mensagem de erro |
---|---|
Um comando limitado .create table que foi classificado para o default grupo de cargas de trabalho, que tem um limite de 80 pedidos simultâneos no âmbito do grupo de cargas de trabalho. |
O comando de gestão foi abortado devido a limitação. Tentar novamente após algum recuo poderá ser bem-sucedido. CommandType: "TableCreate", Capacity: 80, Origin: "RequestRateLimitPolicy/WorkloadGroup/default". |
Uma consulta limitada que foi classificada para um grupo de cargas de trabalho com o nome MyWorkloadGroup , que tem um limite de 50 pedidos simultâneos no âmbito do grupo de cargas de trabalho. |
A consulta foi abortada devido a limitação. Tentar novamente após algum recuo poderá ser bem-sucedido. Capacidade: 50, Origem: "RequestRateLimitPolicy/WorkloadGroup/MyWorkloadGroup". |
Uma consulta limitada que foi classificada para um grupo de cargas de trabalho com o nome MyWorkloadGroup , que tem um limite de 10 pedidos simultâneos no âmbito de um principal. |
A consulta foi abortada devido a limitação. Tentar novamente após algum recuo poderá ser bem-sucedido. Capacidade: 10, Origem: "RequestRateLimitPolicy/WorkloadGroup/MyWorkloadGroup/Principal/aaduser=9e04c4f5-1abd-48d4-a3d2-9f58615b4724; 6ccf3fe8-6343-4be5-96c3-29a128dd9570'. |
- O código de resposta HTTP será
429
. O subcódigo seráTooManyRequests
. - O tipo de exceção será
QueryThrottledException
para consultas eControlCommandThrottledException
para comandos de gestão.
Nota
- Se um dos limites definidos pela política de capacidade ou por uma política de limite de taxa de pedido for excedido, será limitado um comando de gestão.
- A política de capacidade pode limitar a taxa de pedidos que se enquadram numa categoria específica, como ingestões.
Limite da taxa de utilização de recursos
Um limite de taxa de pedido do tipo ResourceUtilization
inclui as seguintes propriedades:
Nome | Tipo | Descrição | Valores Suportados |
---|---|---|---|
ResourceKind | ResourceKind |
O recurso a limitar. Quando ResourceKind é TotalCpuSeconds , o limite é imposto com base em relatórios pós-execução da utilização da CPU de pedidos concluídos. Os pedidos que reportam a utilização de 0,005 segundos de CPU ou inferior não são contabilizados. O limite (MaxUtilization ) representa o total de segundos de CPU que podem ser consumidos por pedidos numa janela de tempo especificada (TimeWindow ). Por exemplo, um utilizador que execute consultas ad hoc pode ter um limite de 1000 segundos de CPU por hora. Se este limite for excedido, as consultas subsequentes serão limitadas, mesmo que sejam iniciadas em simultâneo, uma vez que os segundos cumulativos da CPU ultrapassaram o limite definido no período de janela deslizante. |
RequestCount , TotalCpuSeconds |
MaxUtilization | long |
O máximo do recurso que pode ser utilizado. | RequestCount: [1 , 16777215 ]; TotalCpuSeconds: [1 , 828000 ] |
TimeWindow | timespan |
A janela de tempo deslizante durante a qual o limite é aplicado. | [00:01:00 , 1.00:00:00 ] |
Quando um pedido excede o limite de utilização de recursos:
- O estado do pedido, conforme apresentado pelos comandos de informações do sistema, será
Throttled
. - A mensagem de erro incluirá a origem da limitação e a quota que foi excedida. Por exemplo:
A tabela seguinte mostra alguns exemplos de pedidos que excedem o limite de taxa de utilização de recursos e a mensagem de erro devolvida por estes pedidos:
Scenario | Mensagem de erro |
---|---|
Um pedido limitado que foi classificado para um grupo de cargas de trabalho com o nome Automated Requests , que tem um limite de 1000 pedidos por hora no âmbito de um principal. |
O pedido foi negado devido a limitações de quota excedidas. Recurso: "RequestCount", Quota: "1000", TimeWindow: "01:00:00", Origem: "RequestRateLimitPolicy/WorkloadGroup/Automated Requests/Principal/aadapp=9e04c4f5-1abd-48d4-a3d2-9f58615b4724; 6ccf3fe8-6343-4be5-96c3-29a128dd9570'. |
Um pedido limitado, que foi classificado como um grupo de cargas de trabalho com o nome Automated Requests , que tem um limite de 2000 segundos totais de CPU por hora no âmbito do grupo de cargas de trabalho. |
O pedido foi negado devido a limitações de quota excedidas. Recurso: "TotalCpuSeconds", Quota: "2000", TimeWindow: "01:00:00", Origem: "RequestRateLimitPolicy/WorkloadGroup/Pedidos Automatizados". |
- O código de resposta HTTP será
429
. O subcódigo seráTooManyRequests
. - O tipo de exceção será
QuotaExceededException
.
Como a consistência afeta os limites de taxa
Com uma consistência forte, o limite predefinido em pedidos simultâneos máximos depende do SKU do cluster e é calculado como: Cores-Per-Node x 10
. Por exemplo, um cluster configurado com nós de D14_v2 do Azure, em que cada nó tem 16 vCores, terá um limite predefinido de 16
x 10
= 160
.
Com consistência fraca, o limite predefinido efetivo em pedidos simultâneos máximos depende do SKU do cluster e do número de cabeças de consulta e é calculado como: Cores-Per-Node x 10 x Number-Of-Query-Heads
. Por exemplo, um cluster configurado com o Azure D14_v2 e 5 cabeças de consulta, em que cada nó tem 16 vCores, terá um limite predefinido efetivo de 16
x 10
x800
5
= .
Para obter mais informações, veja Consistência de consultas.
O default
grupo de cargas de trabalho
O default
grupo de cargas de trabalho tem a seguinte política definida por predefinição. Esta política pode ser alterada.
[
{
"IsEnabled": true,
"Scope": "WorkloadGroup",
"LimitKind": "ConcurrentRequests",
"Properties": {
"MaxConcurrentRequests": < Cores-Per-Node x 10 >
}
}
]
Nota
- Quando altera a política para o
default
grupo de cargas de trabalho, tem de ser definido um limite para os pedidos simultâneos máximos.
Exemplos
As seguintes políticas permitem até:
- 500 pedidos simultâneos para o grupo de cargas de trabalho.
- 25 pedidos simultâneos por principal.
- 50 pedidos por principal por hora.
[
{
"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"
}
}
]
As seguintes políticas bloquearão todos os pedidos classificados para o grupo de cargas de trabalho:
[
{
"IsEnabled": true,
"Scope": "WorkloadGroup",
"LimitKind": "ConcurrentRequests",
"Properties": {
"MaxConcurrentRequests": 0
}
},
]
Conteúdo relacionado
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários