Delen via


Beleid voor aanvraagfrequentielimiet

Met het aanvraagfrequentielimietbeleid van de workloadgroep kunt u het aantal gelijktijdige aanvragen beperken dat is geclassificeerd in de workloadgroep, per workloadgroep of per principal.

Frequentielimieten worden afgedwongen op het niveau dat is gedefinieerd door het afdwingen van frequentielimieten voor aanvragen van de workloadgroep.

Het beleidsobject

Een aanvraagfrequentielimietbeleid heeft de volgende eigenschappen:

Name Ondersteunde waarden Description
IsEnabled true, false Geeft aan of het beleid is ingeschakeld of niet.
Bereik WorkloadGroup, Principal Het bereik waarop de limiet van toepassing is.
LimitKind ConcurrentRequests, ResourceUtilization Het type aanvraagfrequentielimiet.
Eigenschappen Eigenschappenverzameling Eigenschappen van de aanvraagfrequentielimiet.

Limiet voor frequentie van gelijktijdige aanvragen

Een aanvraagfrequentielimiet van het type ConcurrentRequests omvat de volgende eigenschap:

Naam Type Beschrijving Ondersteunde waarden
MaxConcurrentRequests int Het maximum aantal gelijktijdige aanvragen. [0, 10000]

Notitie

  • Als een workloadgroep geen opgegeven limiet heeft voor het maximum aantal gelijktijdige aanvragen, is deze onderworpen aan de standaard maximumwaarde van 10000.

Wanneer een aanvraag de limiet voor het maximum aantal gelijktijdige aanvragen overschrijdt:

  • De status van de aanvraag, zoals weergegeven door systeeminformatieopdrachten, is Throttled.
  • Het foutbericht bevat de oorsprong van de beperking en de capaciteit die is overschreden.

In de volgende tabel ziet u enkele voorbeelden van gelijktijdige aanvragen die de maximumlimiet overschrijden en het foutbericht dat deze aanvragen retourneren:

Scenario Foutbericht
Een beperkte .create table opdracht die is geclassificeerd voor de default workloadgroep, met een limiet van 80 gelijktijdige aanvragen binnen het bereik van de workloadgroep. De beheeropdracht is afgebroken vanwege beperking. Het opnieuw proberen na enige uitstel kan lukken. CommandType: 'TableCreate', Capaciteit: 80, Oorsprong: 'RequestRateLimitPolicy/WorkloadGroup/default'.
Een vertraagde query die is geclassificeerd voor een workloadgroep met de naam MyWorkloadGroup, die een limiet van 50 gelijktijdige aanvragen heeft binnen het bereik van de workloadgroep. De query is afgebroken vanwege beperking. Het opnieuw proberen na enige uitstel kan lukken. Capaciteit: 50, Oorsprong: 'RequestRateLimitPolicy/WorkloadGroup/MyWorkloadGroup'.
Een vertraagde query die is geclassificeerd voor een workloadgroep met de naam MyWorkloadGroup, die een limiet van 10 gelijktijdige aanvragen heeft binnen het bereik van een principal. De query is afgebroken vanwege beperking. Het opnieuw proberen na enige uitstel kan lukken. Capaciteit: 10, Oorsprong: 'RequestRateLimitPolicy/WorkloadGroup/MyWorkloadGroup/Principal/aaduser=9e04c4f5-1abd-48d4-a3d2-9f58615b4724; 6ccf3fe8-6343-4be5-96c3-29a128dd9570'.
  • De HTTP-antwoordcode wordt 429. De subcode wordt TooManyRequests.
  • Het uitzonderingstype is QueryThrottledException voor query's en ControlCommandThrottledException voor beheeropdrachten.

Notitie

  • Als een van de limieten die zijn gedefinieerd door het capaciteitsbeleid of door een aanvraagfrequentielimietbeleid wordt overschreden, wordt een beheeropdracht beperkt.
  • Het capaciteitsbeleid kan de aanvraagsnelheid beperken van aanvragen die onder een specifieke categorie vallen, zoals opname.

Limiet voor resourcegebruik

Een aanvraagsnelheidslimiet van het type ResourceUtilization bevat de volgende eigenschappen:

Naam Type Beschrijving Ondersteunde waarden
ResourceKind ResourceKind De resource die moet worden beperkt.

Wanneer ResourceKind is TotalCpuSeconds, wordt de limiet afgedwongen op basis van rapporten na de uitvoering van het CPU-gebruik van voltooide aanvragen. Aanvragen die een cpu-gebruik van 0,005 seconden of lager rapporteren, worden niet meegeteld. De limiet (MaxUtilization) vertegenwoordigt het totale AANTAL CPU-seconden dat kan worden verbruikt door aanvragen binnen een opgegeven tijdvenster (TimeWindow). Een gebruiker die ad-hocquery's uitvoert, kan bijvoorbeeld een limiet van 1000 CPU-seconden per uur hebben. Als deze limiet wordt overschreden, worden volgende query's beperkt, zelfs als ze gelijktijdig worden gestart, omdat de cumulatieve CPU-seconden de gedefinieerde limiet binnen de periode van de sliding window hebben overschreden.
RequestCount, TotalCpuSeconds
Maximumgebruik long Het maximum van de resource die kan worden gebruikt. RequestCount: [1, 16777215]; TotalCpuSeconds: [1, 828000]
TimeWindow timespan Het verschuivende tijdvenster waarin de limiet wordt toegepast. [00:01:00, 1.00:00:00]

Wanneer een aanvraag de limiet voor het gebruik van resources overschrijdt:

  • De status van de aanvraag, zoals weergegeven door systeeminformatieopdrachten, is Throttled.
  • Het foutbericht bevat de oorsprong van de beperking en het quotum dat is overschreden. Bijvoorbeeld:

In de volgende tabel ziet u enkele voorbeelden van aanvragen die de limiet voor het resourcegebruik overschrijden en het foutbericht dat deze aanvragen retourneren:

Scenario Foutbericht
Een vertraagde aanvraag die is geclassificeerd voor een workloadgroep met de naam Automated Requests, die een limiet van 1000 aanvragen per uur heeft binnen het bereik van een principal. De aanvraag is geweigerd vanwege het overschrijden van quotumbeperkingen. Resource: 'RequestCount', Quota: '1000', TimeWindow: '01:00:00', Origin: 'RequestRateLimitPolicy/WorkloadGroup/Automated Requests/Principal/aadapp=9e04c4f5-1abd-48d4-a3d2-9f58615b4724; 6ccf3fe8-6343-4be5-96c3-29a128dd9570'.
Een vertraagde aanvraag, die is geclassificeerd voor een workloadgroep met de naam Automated Requests, die een limiet van 2000 cpu-seconden per uur heeft voor het bereik van de werkbelastinggroep. De aanvraag is geweigerd vanwege het overschrijden van quotumbeperkingen. Resource: 'TotalCpuSeconds', Quotum: '2000', TimeWindow: '01:00:00', Oorsprong: 'RequestRateLimitPolicy/WorkloadGroup/Automated Requests'.
  • De HTTP-antwoordcode wordt 429. De subcode wordt TooManyRequests.
  • Het uitzonderingstype is QuotaExceededException.

Hoe consistentie van invloed is op frequentielimieten

Met een sterke consistentie is de standaardlimiet voor het maximum aantal gelijktijdige aanvragen afhankelijk van de SKU van het cluster en wordt deze berekend als: Cores-Per-Node x 10. Een cluster dat is ingesteld met Azure D14_v2-knooppunten, waarbij elk knooppunt 16 vCores heeft, heeft bijvoorbeeld een standaardlimiet van 16 x 10 = 160.

Bij een zwakke consistentie is de effectieve standaardlimiet voor het maximum aantal gelijktijdige aanvragen afhankelijk van de SKU van het cluster en het aantal querykoppen, en wordt deze berekend als: Cores-Per-Node x 10 x Number-Of-Query-Heads. Een cluster dat bijvoorbeeld is ingesteld met Azure D14_v2 en 5 querykoppen, waarbij elk knooppunt 16 vCores heeft, heeft een effectieve standaardlimiet van 16 x 10 x8005 = .

Zie Queryconsistentie voor meer informatie.

De default workloadgroep

Voor default de workloadgroep is standaard het volgende beleid gedefinieerd. Dit beleid kan worden gewijzigd.

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

Notitie

  • Wanneer u het beleid voor de default workloadgroep wijzigt, moet er een limiet worden gedefinieerd voor het maximum aantal gelijktijdige aanvragen.

Voorbeelden

De volgende beleidsregels staan maximaal toe:

  • 500 gelijktijdige aanvragen voor de workloadgroep.
  • 25 gelijktijdige aanvragen per principal.
  • 50 aanvragen per principal per uur.
[
  {
    "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"
    }
  }
]

Het volgende beleid blokkeert alle aanvragen die zijn geclassificeerd voor de workloadgroep:

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