Freigeben über


Richtlinie für die Anforderungsratenbegrenzung

Gilt für: ✅Microsoft FabricAzure Data Explorer

Mit der Anforderungsratenbeschränkungsrichtlinie der Workloadgruppe können Sie die Anzahl der gleichzeitigen Anforderungen einschränken, die in die Workloadgruppe, pro Workloadgruppe oder pro Prinzipal klassifiziert wurden.

Rate limits are enforcement at the level defined by the workload group's Request rate limits enforcement policy.

Das Richtlinienobjekt

Eine Anforderungsratenbeschränkungsrichtlinie weist die folgenden Eigenschaften auf:

Name Unterstützte Werte Beschreibung
IsEnabled true, false Gibt an, ob die Richtlinie aktiviert ist oder nicht.
Umfang WorkloadGroup, Principal Der Bereich, für den der Grenzwert gilt.
LimitKind ConcurrentRequests, ResourceUtilization Die Art des Anforderungssatzlimits.
Eigenschaften Eigenschaftenbehälter Eigenschaften des Anforderungsratenlimits.

Grenzwert für gleichzeitige Anforderungen

Ein Anforderungssatzgrenzwert ConcurrentRequests umfasst die folgende Eigenschaft:

Name Art Beschreibung Unterstützte Werte
MaxConcurrentRequests int Die maximale Anzahl gleichzeitiger Anforderungen. [0, 10000]

Anmerkung

  • Wenn eine Workloadgruppe keinen angegebenen Grenzwert für die maximalen gleichzeitigen Anforderungen aufweist, unterliegt sie dem Standardwert 10000.

Wenn eine Anforderung den Grenzwert für die maximale Anzahl gleichzeitiger Anforderungen überschreitet:

  • Der Status der Anforderung, wie von Systeminformationsbefehlendargestellt, wird Throttled.
  • Die Fehlermeldung enthält den Ursprung der Drosselung und die Kapazität, die überschritten wurde.

In der folgenden Tabelle sind einige Beispiele für gleichzeitige Anforderungen aufgeführt, die den maximalen Grenzwert überschreiten, und die Fehlermeldung, die diese Anforderungen zurückgeben:

Szenario Fehlermeldung
Ein gedrosselter .create table Befehl, der in die default Workloadgruppe klassifiziert wurde, die eine Grenze von 80 gleichzeitigen Anforderungen im Bereich der Workloadgruppe hat. Der Verwaltungsbefehl wurde aufgrund der Drosselung abgebrochen. Versuchen Sie es erneut, nachdem ein Backoff erfolgreich war. CommandType: 'TableCreate', Capacity: 80, Origin: 'RequestRateLimitPolicy/WorkloadGroup/default'.
Eine eingeschränkte Abfrage, die in eine Workloadgruppe mit dem Namen MyWorkloadGroupklassifiziert wurde, die eine Grenze von 50 gleichzeitigen Anforderungen im Bereich der Workloadgruppe hat. Die Abfrage wurde aufgrund von Drosselung abgebrochen. Versuchen Sie es erneut, nachdem ein Backoff erfolgreich war. Kapazität: 50, Ursprung: 'RequestRateLimitPolicy/WorkloadGroup/MyWorkloadGroup'.
Eine eingeschränkte Abfrage, die in eine Workloadgruppe mit dem Namen MyWorkloadGroupklassifiziert wurde, die maximal 10 gleichzeitige Anforderungen im Bereich eines Prinzipals umfasst. Die Abfrage wurde aufgrund von Drosselung abgebrochen. Versuchen Sie es erneut, nachdem ein Backoff erfolgreich war. Kapazität: 10, Ursprung: 'RequestRateLimitPolicy/WorkloadGroup/MyWorkloadGroup/Principal/aaduser=9e04c4f5-1abd-48d4-a3d2-9f58615b4724; 6ccf3fe8-6343-4be5-96c3-29a128dd9570'.
  • Der HTTP-Antwortcode wird 429. Der Untercode wird TooManyRequests.
  • Der Ausnahmetyp wird für Abfragen QueryThrottledException und ControlCommandThrottledException für Verwaltungsbefehle.

Anmerkung

  • Wenn eine der durch die Kapazitätsrichtlinie definierten Grenzwerte oder durch eine Anforderungsratengrenzrichtlinie überschritten wird, wird ein Verwaltungsbefehl gedrosselt.
  • Die Kapazitätsrichtlinie kann die Anforderungsrate von Anforderungen einschränken, die unter eine bestimmte Kategorie fallen, z. B. Aufnahmeraten.

Grenzwert für die Ressourcenauslastung

Ein Anforderungsratenlimit ResourceUtilization umfasst die folgenden Eigenschaften:

Name Art Beschreibung Unterstützte Werte
ResourceKind ResourceKind Die zu begrenzende Ressource.

Wenn ResourceKindTotalCpuSecondsist, wird der Grenzwert basierend auf Nachausführungsberichten der CPU-Auslastung abgeschlossener Anforderungen erzwungen. Anforderungen, die die Auslastung von 0,005 Sekunden CPU oder niedriger melden, werden nicht gezählt. Der Grenzwert (MaxUtilization) stellt die gesamt CPU-Sekunden dar, die von Anforderungen innerhalb eines angegebenen Zeitfensters (TimeWindow) verbraucht werden können. Beispielsweise kann ein Benutzer, der Ad-hoc-Abfragen ausführt, einen Grenzwert von 1000 CPU-Sekunden pro Stunde haben. Wenn dieser Grenzwert überschritten wird, werden nachfolgende Abfragen gedrosselt, auch wenn sie gleichzeitig gestartet werden, da die kumulierten CPU-Sekunden den definierten Grenzwert innerhalb des Gleitfensterzeitraums überschritten haben.
RequestCount, TotalCpuSeconds
MaxUtilization long Das Maximum der Ressource, die verwendet werden kann. RequestCount: [1, 16777215]; TotalCpuSeconds: [1, 828000]
TimeWindow timespan Das Gleitzeitfenster, in dem der Grenzwert angewendet wird. [00:00:01, 01:00:00]

Wenn eine Anforderung den Grenzwert für die Ressourcenauslastung überschreitet:

  • Der Status der Anforderung, wie von Systeminformationsbefehlendargestellt, wird Throttled.
  • Die Fehlermeldung enthält den Ursprung der Einschränkung und das Kontingent, das überschritten wurde. Zum Beispiel:

In der folgenden Tabelle sind einige Beispiele für Anforderungen aufgeführt, die den Grenzwert für die Ressourcenauslastung überschreiten, und die Fehlermeldung, die diese Anforderungen zurückgeben:

Szenario Fehlermeldung
Eine eingeschränkte Anforderung, die in eine Workloadgruppe mit dem Namen Automated Requestsklassifiziert wurde, die eine Grenze von 1000 Anforderungen pro Stunde im Bereich eines Prinzipals aufweist. Die Anforderung wurde aufgrund einer Überschreitung der Kontingentbeschränkungen verweigert. Ressource: 'RequestCount', Kontingent: '1000', TimeWindow: '01:00:00', Origin: 'RequestRateLimitPolicy/WorkloadGroup/Automated Requests/Principal/aadapp=9e04c4f5-1abd-48d4-a3d2-9f58615b4724; 6ccf3fe8-6343-4be5-96c3-29a128dd9570'.
Eine eingeschränkte Anforderung, die in eine Workloadgruppe mit dem Namen Automated Requestsklassifiziert wurde, die insgesamt 2000 CPU-Sekunden pro Stunde im Bereich der Workloadgruppe beträgt. Die Anforderung wurde aufgrund einer Überschreitung der Kontingentbeschränkungen verweigert. Ressource: 'TotalCpuSeconds', Kontingent: '2000', TimeWindow: '01:00:00', Origin: 'RequestRateLimitPolicy/WorkloadGroup/Automated Requests'.
  • Der HTTP-Antwortcode wird 429. Der Untercode wird TooManyRequests.
  • Der Ausnahmetyp wird QuotaExceededException.

Auswirkungen auf Konsistenzgrenzen

Bei starker Konsistenz hängt der Standardgrenzwert für maximale gleichzeitige Anforderungen von der SKU des Clusters ab und wird berechnet als: Cores-Per-Node x 10. Ein Cluster, der mit Azure D14_v2 Knoten eingerichtet ist, wobei jeder Knoten 16 vCores aufweist, hat beispielsweise einen Standardgrenzwert von 16 x 10 = 160.

Mit schwacher Konsistenz hängt der effektive Standardgrenzwert für maximale gleichzeitige Anforderungen von der SKU des Clusters und der Anzahl der Abfrageköpfe ab und wird berechnet als: Cores-Per-Node x 10 x Number-Of-Query-Heads. Beispielsweise verfügt ein Cluster, der mit Azure D14_v2 und 5 Abfrageköpfen eingerichtet ist, wobei jeder Knoten 16 vCores hat, einen effektiven Standardgrenzwert von 16 x 10 x 5 = 800.

Mit starker Konsistenz hängt der Standardgrenzwert für maximale gleichzeitige Anforderungen von der SKU des Eventhouse ab und wird berechnet als: Cores-Per-Node x 10. Ein Ereignishaus, das mit Azure D14_v2 Knoten eingerichtet ist, wobei jeder Knoten 16 vCores hat, hat beispielsweise einen Standardgrenzwert von 16 x 10 = 160.

Mit schwacher Konsistenz hängt das effektive Standardlimit für maximale gleichzeitige Anforderungen von der SKU des Ereignishauses und der Anzahl der Abfrageköpfe ab und wird berechnet als: Cores-Per-Node x 10 x Number-Of-Query-Heads. Beispielsweise verfügt ein Ereignishaus, das mit Azure D14_v2 und 5 Abfrageköpfen eingerichtet ist, wobei jeder Knoten 16 vCores hat, einen effektiven Standardgrenzwert von 16 x 10 x 5 = 800.

Weitere Informationen finden Sie unter Abfragekonsistenz.

Die default Workloadgruppe

Die Gruppe default Workload weist standardmäßig die folgende Richtlinie auf. Diese Richtlinie kann geändert werden.

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

Anmerkung

  • Wenn Sie die Richtlinie für die default Workloadgruppe ändern, muss ein Grenzwert für die maximalen gleichzeitigen Anforderungen definiert werden.

Beispiele

Die folgenden Richtlinien ermöglichen bis zu:

  • 500 gleichzeitige Anforderungen für die Workloadgruppe.
  • 25 gleichzeitige Anforderungen pro Prinzipal.
  • 50 Anforderungen pro Prinzipal pro Stunde.
[
  {
    "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"
    }
  }
]

Die folgenden Richtlinien blockieren alle Anforderungen, die in die Workloadgruppe klassifiziert wurden:

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