Dela via


Princip för hastighetsbegränsning för begäran

Gäller för: ✅Microsoft FabricAzure Data Explorer

Med arbetsbelastningsgruppens princip för hastighetsbegränsning för begäranden kan du begränsa antalet samtidiga begäranden som klassificeras i arbetsbelastningsgruppen, per arbetsbelastningsgrupp eller per huvudnamn.

Hastighetsbegränsningar tillämpas på den nivå som definieras av arbetsbelastningsgruppens Begärandefrekvens begränsar efterlevnadsprincipen.

Principobjektet

En princip för hastighetsbegränsning för begäran har följande egenskaper:

Namn Värden som stöds Beskrivning
IsEnabled true, false Anger om principen är aktiverad eller inte.
Omfattning WorkloadGroup, Principal Det omfång som gränsen gäller för.
LimitKind ConcurrentRequests, ResourceUtilization Typ av gräns för begärandefrekvens.
Egenskaper Egenskapsväska Egenskaper för gränsen för begärandefrekvens.

Hastighetsgräns för samtidiga begäranden

En typ av begärandegräns ConcurrentRequests innehåller följande egenskap:

Namn Typ Beskrivning Värden som stöds
MaxConcurrentRequests int Det maximala antalet samtidiga begäranden. [0, 10000]

Not

  • Om en arbetsbelastningsgrupp inte har någon angiven gräns för de maximala samtidiga begärandena omfattas den av det högsta standardvärdet för 10000.

När en begäran överskrider gränsen för maximalt antal samtidiga begäranden:

  • Begärans tillstånd, enligt systeminformationskommandon, kommer att Throttled.
  • Felmeddelandet innehåller ursprung för begränsningen och kapacitet som har överskridits.

I följande tabell visas några exempel på samtidiga begäranden som överskrider maxgränsen och felmeddelandet som dessa begäranden returnerar:

Scenario Felmeddelande
Ett begränsat .create table kommando som klassificerades till arbetsbelastningsgruppen default, som har en gräns på 80 samtidiga begäranden i arbetsbelastningsgruppens omfång. Hanteringskommandot avbröts på grund av begränsning. Ett nytt försök efter en viss backoff kan lyckas. CommandType: 'TableCreate', Capacity: 80, Origin: 'RequestRateLimitPolicy/WorkloadGroup/default'.
En begränsad fråga som klassificerades till en arbetsbelastningsgrupp med namnet MyWorkloadGroup, som har en gräns på 50 samtidiga begäranden i omfånget för arbetsbelastningsgruppen. Frågan avbröts på grund av begränsning. Ett nytt försök efter en viss backoff kan lyckas. Kapacitet: 50, Ursprung: "RequestRateLimitPolicy/WorkloadGroup/MyWorkloadGroup".
En begränsad fråga som klassificerades till en arbetsbelastningsgrupp med namnet MyWorkloadGroup, som har en gräns på 10 samtidiga begäranden i omfånget för ett huvudnamn. Frågan avbröts på grund av begränsning. Ett nytt försök efter en viss backoff kan lyckas. Kapacitet: 10, Ursprung: "RequestRateLimitPolicy/WorkloadGroup/MyWorkloadGroup/Principal/aaduser=9e04c4f5-1abd-48d4-a3d2-9f58615b4724; 6ccf3fe8-6343-4be5-96c3-29a128dd9570".
  • HTTP-svarskoden kommer att 429. Underkoden kommer att vara TooManyRequests.
  • Undantagstypen är QueryThrottledException för frågor och ControlCommandThrottledException för hanteringskommandon.

Not

  • Om någon av de gränser som definieras av kapacitetsprincip eller av en princip för hastighetsbegränsning för begäran överskrids, begränsas ett hanteringskommando.
  • Den kapacitetsprincipen kan begränsa antalet begäranden som omfattas av en specifik kategori, till exempel inmatningar.

Hastighetsgräns för resursanvändning

En typbegränsning för begäranden ResourceUtilization innehåller följande egenskaper:

Namn Typ Beskrivning Värden som stöds
ResourceKind ResourceKind Resursen som ska begränsas.

När ResourceKind är TotalCpuSecondstillämpas gränsen baserat på rapporter efter körning av CPU-användning av slutförda begäranden. Begäranden som rapporterar användning på 0,005 sekunder av CPU eller lägre räknas inte. Gränsen (MaxUtilization) representerar det totala antalet CPU-sekunder som kan användas av begäranden inom ett angivet tidsperiod (TimeWindow). En användare som kör ad hoc-frågor kan till exempel ha en gräns på 1 000 CPU-sekunder per timme. Om den här gränsen överskrids begränsas efterföljande frågor, även om de startas samtidigt, eftersom de kumulativa CPU-sekunderna har överskridit den definierade gränsen inom glidande fönsterperiod.
RequestCount, TotalCpuSeconds
MaxUtilization long Maximalt antal resurser som kan användas. RequestCount: [1, 16777215]; TotalCpuSeconds: [1, 828000]
TimeWindow timespan Det skjuttidsfönster under vilket gränsen tillämpas. [00:01:00, 1.00:00:00]

När en begäran överskrider gränsen för resursanvändning:

  • Begärans tillstånd, enligt systeminformationskommandon, kommer att Throttled.
  • Felmeddelandet innehåller ursprung för begränsningen och kvot som har överskridits. Till exempel:

I följande tabell visas några exempel på begäranden som överskrider gränsen för resursanvändning och felmeddelandet som dessa begäranden returnerar:

Scenario Felmeddelande
En begränsad begäran som klassificerades till en arbetsbelastningsgrupp med namnet Automated Requests, som har en gräns på 1 000 begäranden per timme i omfånget för ett huvudnamn. Begäran nekades på grund av att kvotbegränsningarna överskreds. Resurs: 'RequestCount', Quota: '1000', TimeWindow: '01:00:00', Origin: 'RequestRateLimitPolicy/WorkloadGroup/Automated Requests/Principal/aadapp=9e04c4f5-1abd-48d4-a3d2-9f58615b4724; 6ccf3fe8-6343-4be5-96c3-29a128dd9570".
En begränsad begäran som klassificerades till en arbetsbelastningsgrupp med namnet Automated Requests, som har en gräns på 2 000 totala CPU-sekunder per timme i arbetsbelastningsgruppens omfång. Begäran nekades på grund av att kvotbegränsningarna överskreds. Resurs: "TotalCpuSeconds", kvot: '2000', TimeWindow: '01:00:00', Ursprung: 'RequestRateLimitPolicy/WorkloadGroup/Automated Requests'.
  • HTTP-svarskoden kommer att 429. Underkoden kommer att vara TooManyRequests.
  • Undantagstypen blir QuotaExceededException.

Hur konsekvens påverkar hastighetsbegränsningar

Med stark konsekvens beror standardgränsen för maximala samtidiga begäranden på klustrets SKU och beräknas som: Cores-Per-Node x 10. Ett kluster som har konfigurerats med Azure D14_v2-noder, där varje nod har 16 virtuella kärnor, har till exempel en standardgräns på 16 x 10 = 160.

Med svag konsekvens beror den effektiva standardgränsen för maximala samtidiga begäranden på klustrets SKU och antalet frågehuvuden och beräknas som: Cores-Per-Node x 10 x Number-Of-Query-Heads. Ett kluster som har konfigurerats med Azure D14_v2 och 5 frågehuvuden, där varje nod har 16 virtuella kärnor, har till exempel en effektiv standardgräns på 16 x 10 x 5 = 800.

Med stark konsekvens är standardgränsen för maximala samtidiga begäranden beroende av händelsehusets SKU och beräknas som: Cores-Per-Node x 10. Ett händelsehus som har konfigurerats med Azure D14_v2 noder, där varje nod har 16 virtuella kärnor, har till exempel en standardgräns på 16 x 10 = 160.

Med svag konsekvens beror den effektiva standardgränsen för maximala samtidiga begäranden på SKU:n för händelsehuset och antalet frågehuvuden och beräknas som: Cores-Per-Node x 10 x Number-Of-Query-Heads. Till exempel har ett händelsehus som har konfigurerats med Azure D14_v2 och 5 frågehuvuden, där varje nod har 16 virtuella kärnor, en effektiv standardgräns på 16 x 10 x 5 = 800.

Mer information finns i Frågekonsekvens.

Arbetsbelastningsgruppen default

Arbetsbelastningsgruppen default har följande princip definierad som standard. Den här principen kan ändras.

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

Not

  • När du ändrar principen för default arbetsbelastningsgrupp måste en gräns definieras för maximalt antal samtidiga begäranden.

Exempel

Följande principer tillåter upp till:

  • 500 samtidiga begäranden för arbetsbelastningsgruppen.
  • 25 samtidiga begäranden per huvudnamn.
  • 50 begäranden per huvudkonto per timme.
[
  {
    "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"
    }
  }
]

Följande principer blockerar alla begäranden som klassificeras till arbetsbelastningsgruppen:

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