Partilhar via


Política de limite de taxa de solicitação

Aplica-se a: ✅Microsoft FabricAzure Data Explorer

A política de limite de taxa de solicitação do grupo de carga de trabalho permite limitar o número de solicitações simultâneas classificadas no grupo de carga de trabalho, por grupo de carga de trabalho ou por entidade de segurança.

Os limites de taxa são impostos no nível definido pela política de aplicação de limites de taxa de solicitação do grupo de carga de trabalho.

O objeto político

Uma política de limite de taxa de solicitação tem as seguintes propriedades:

Designação Valores suportados Descrição
IsEnabled true, false Indica se a política está habilitada ou não.
Âmbito de aplicação WorkloadGroup, Principal O âmbito de aplicação do limite.
LimitKind ConcurrentRequests, ResourceUtilization O tipo de limite de taxa de solicitação.
Propriedades Saco de propriedade Propriedades do limite de taxa de solicitação.

Limite de taxa de solicitações simultâneas

Um limite de taxa de solicitação do tipo ConcurrentRequests inclui a seguinte propriedade:

Designação Tipo Descrição Valores suportados
MaxConcurrentRequests int O número máximo de solicitações simultâneas. [0, 10000]

Observação

  • Se um grupo de carga de trabalho não tiver um limite especificado para o máximo de solicitações simultâneas, ele estará sujeito ao valor máximo padrão de 10000.

Quando uma solicitação excede o limite do número máximo de solicitações simultâneas:

  • O estado da solicitação, conforme apresentado por comandos de informações do sistema, será Throttled.
  • A mensagem de erro incluirá o de origem da limitação e a capacidade de que foi excedida.

A tabela a seguir mostra alguns exemplos de solicitações simultâneas que excedem o limite máximo e a mensagem de erro que essas solicitações retornam:

Cenário Mensagem de erro
Um comando .create table acelerado que foi classificado para o grupo de carga de trabalho default, que tem um limite de 80 solicitações simultâneas no escopo do grupo de carga de trabalho. O comando de gestão foi abortado devido ao estrangulamento. Tentar novamente depois de algum recuo pode ter sucesso. CommandType: 'TableCreate', Capacidade: 80, Origem: 'RequestRateLimitPolicy/WorkloadGroup/default'.
Uma consulta limitada que foi classificada em um grupo de carga de trabalho chamado MyWorkloadGroup, que tem um limite de 50 solicitações simultâneas no escopo do grupo de carga de trabalho. A consulta foi abortada devido à limitação. Tentar novamente depois de algum recuo pode ter sucesso. Capacidade: 50, Origem: 'RequestRateLimitPolicy/WorkloadGroup/MyWorkloadGroup'.
Uma consulta limitada que foi classificada para um grupo de carga de trabalho chamado MyWorkloadGroup, que tem um limite de 10 solicitações simultâneas no escopo de uma entidade de segurança. A consulta foi abortada devido à limitação. Tentar novamente depois de algum recuo pode ter sucesso. 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 e ControlCommandThrottledException para comandos de gerenciamento.

Observação

  • Se um dos limites definidos pelo de política de capacidade ou por uma política de limite de taxa de solicitação for excedido, um comando de gerenciamento será limitado.
  • O de política de capacidade pode limitar a taxa de solicitações que se enquadram em uma categoria específica, como ingestões.

Limite da taxa de utilização de recursos

Um limite de taxa de solicitação do tipo ResourceUtilization inclui as seguintes propriedades:

Designação 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 de utilização da CPU de solicitações concluídas. As solicitações que relatam a utilização de 0,005 segundos de CPU ou inferior não são contadas. O limite (MaxUtilization) representa o total de segundos da CPU que podem ser consumidos por solicitações dentro de uma janela de tempo especificada (TimeWindow). Por exemplo, um usuário executando consultas ad-hoc pode ter um limite de 1000 segundos de CPU por hora. Se esse limite for excedido, as consultas subsequentes serão limitadas, mesmo se iniciadas simultaneamente, pois os segundos acumulados da CPU ultrapassaram o limite definido dentro do período da janela deslizante.
RequestCount, TotalCpuSeconds
MaxUtilização long O máximo do recurso que pode ser utilizado. RequestCount: [1, 16777215]; TotalCpuSeconds: [1, 828000]
Janela de Tempo timespan A janela de tempo deslizante durante a qual o limite é aplicado. [00:01:00, 1.00:00:00]

Quando uma solicitação excede o limite de utilização de recursos:

  • O estado da solicitação, conforme apresentado por comandos de informações do sistema, será Throttled.
  • A mensagem de erro incluirá o de origem da limitação e o de cota que foi excedido. Por exemplo:

A tabela a seguir mostra alguns exemplos de solicitações que excedem o limite de taxa de utilização de recursos e a mensagem de erro que essas solicitações retornam:

Cenário Mensagem de erro
Uma solicitação limitada que foi classificada para um grupo de carga de trabalho chamado Automated Requests, que tem um limite de 1000 solicitações por hora no escopo de uma entidade de segurança. O pedido foi negado devido à superação das limitações de cota. Recurso: 'RequestCount', Cota: '1000', TimeWindow: '01:00:00', Origem: 'RequestRateLimitPolicy/WorkloadGroup/Automated Requests/Principal/aadapp=9e04c4f5-1abd-48d4-a3d2-9f58615b4724; 6ccf3fe8-6343-4be5-96c3-29a128dd9570».
Uma solicitação limitada, que foi classificada em um grupo de carga de trabalho chamado Automated Requests, que tem um limite de 2000 segundos totais de CPU por hora no escopo do grupo de carga de trabalho. O pedido foi negado devido à superação das limitações de cota. Recurso: 'TotalCpuSeconds', Quota: '2000', TimeWindow: '01:00:00', Origem: 'RequestRateLimitPolicy/WorkloadGroup/Automated Requests'.
  • 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 forte consistência, o limite padrão no máximo de solicitações simultâneas depende da SKU do cluster e é calculado como: Cores-Per-Node x 10. Por exemplo, um cluster configurado com nós do Azure D14_v2, onde cada nó tem 16 vCores, terá um limite padrão de 16 x 10 = 160.

Com consistência fraca, o limite padrão efetivo no máximo de solicitações simultâneas depende da SKU do cluster e do número de cabeçalhos 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çalhos de consulta, em que cada nó tem 16 vCores, terá um limite padrão efetivo de 16 x 10 x 5 = 800.

Com forte consistência, o limite padrão de solicitações simultâneas máximas depende da SKU da casa de eventos e é calculado como: Cores-Per-Node x 10. Por exemplo, uma casa de eventos configurada com nós do Azure D14_v2, onde cada nó tem 16 vCores, terá um limite padrão de 16 x 10 = 160.

Com consistência fraca, o limite padrão efetivo no máximo de solicitações simultâneas depende da SKU da casa de eventos e do número de cabeçalhos de consulta, e é calculado como: Cores-Per-Node x 10 x Number-Of-Query-Heads. Por exemplo, uma casa de eventos configurada com o Azure D14_v2 e 5 cabeçalhos de consulta, onde cada nó tem 16 vCores, terá um limite padrão efetivo de 16 x 10 x 5 = 800.

Para obter mais informações, consulte Consistência da consulta.

O grupo de carga de trabalho default

O grupo de carga de trabalho default tem a seguinte política definida por padrão. Esta política pode ser alterada.

[
  {
    "IsEnabled": true,
    "Scope": "WorkloadGroup",
    "LimitKind": "ConcurrentRequests",
    "Properties": {
      "MaxConcurrentRequests": < Cores-Per-Node x 10 >
    }
  }
]

Observação

  • Quando você altera a política para o grupo de carga de trabalho default, um limite deve ser definido para o máximo de solicitações simultâneas.

Exemplos

As seguintes políticas permitem até:

  • 500 solicitações simultâneas para o grupo de carga de trabalho.
  • 25 solicitações simultâneas por principal.
  • 50 solicitações 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 políticas a seguir bloquearão todas as solicitações classificadas para o grupo de carga de trabalho:

[
  {
    "IsEnabled": true,
    "Scope": "WorkloadGroup",
    "LimitKind": "ConcurrentRequests",
    "Properties": {
      "MaxConcurrentRequests": 0
    }
  },
]