Sdílet prostřednictvím


Zásady omezení četnosti požadavků

Platí pro: ✅Microsoft FabricAzure Data Explorer

Zásady omezení četnosti požadavků skupiny úloh umožňují omezit počet souběžných požadavků klasifikovaných do skupiny úloh, na skupinu úloh nebo na objekt zabezpečení.

Omezení rychlosti se vynucují na úrovni definované zásadou vynucení omezení rychlosti požadavků skupiny úloh.

Objekt zásad

Zásada omezení četnosti požadavků má následující vlastnosti:

Jméno Podporované hodnoty Popis
IsEnabled true, false Označuje, jestli je zásada povolená nebo ne.
Rozsah WorkloadGroup, Principal Rozsah, na který se limit vztahuje.
LimitKind ConcurrentRequests, ResourceUtilization Druh limitu četnosti požadavků.
Vlastnosti Taška vlastností Vlastnosti limitu rychlosti požadavků.

Limit četnosti souběžných požadavků

Omezení četnosti požadavků typu ConcurrentRequests zahrnuje následující vlastnost:

Jméno Typ Popis Podporované hodnoty
MaxConcurrentRequests int Maximální počet souběžných požadavků. [0, 10000]

Poznámka

  • Pokud skupina úloh nemá zadaný limit maximálního počtu souběžných požadavků, podléhá výchozí maximální hodnotě 10000.

Když požadavek překročí limit maximálního počtu souběžných požadavků:

  • Stav požadavku, jak je uvedeno příkazy systémové informace, budou Throttled.
  • Chybová zpráva bude obsahovat původ omezování a kapacitu, která byla překročena.

Následující tabulka uvádí několik příkladů souběžných požadavků, které překračují maximální limit, a chybovou zprávu, kterou tyto požadavky vracejí:

Scénář Zpráva o chybě
Omezený .create table příkaz klasifikovaný do skupiny úloh default, který má limit 80 souběžných požadavků v oboru skupiny úloh. Příkaz pro správu byl přerušen kvůli omezování. Opakování po nějakém zpochybnění může proběhnout úspěšně. CommandType: 'TableCreate', Capacity: 80, Origin: 'RequestRateLimitPolicy/WorkloadGroup/default'.
Omezený dotaz klasifikovaný do skupiny úloh s názvem MyWorkloadGroup, který má limit 50 souběžných požadavků v oboru skupiny úloh. Dotaz byl přerušen kvůli omezování. Opakování po nějakém zpochybnění může proběhnout úspěšně. Kapacita: 50, origin: RequestRateLimitPolicy/WorkloadGroup/MyWorkloadGroup.
Omezený dotaz klasifikovaný do skupiny úloh s názvem MyWorkloadGroup, který má limit 10 souběžných požadavků v oboru objektu zabezpečení. Dotaz byl přerušen kvůli omezování. Opakování po nějakém zpochybnění může proběhnout úspěšně. Kapacita: 10, origin: RequestRateLimitPolicy/WorkloadGroup/MyWorkloadGroup/Principal/aaduser=9e04c4f5-1abd-48d4-a3d2-9f58615b4724; 6ccf3fe8-6343-4be5-96c3-29a128dd9570'.
  • Kód odpovědi HTTP bude 429. Podkód bude TooManyRequests.
  • Typ výjimky bude QueryThrottledException pro dotazy a ControlCommandThrottledException pro příkazy pro správu.

Poznámka

  • Pokud dojde k překročení některého z limitů definovaných zásadou kapacity nebo zásadou omezení četnosti požadavků, omezí se příkaz pro správu.
  • Zásady kapacity můžou omezit frekvenci požadavků, které spadají do určité kategorie, jako je příjem dat.

Omezení rychlosti využití prostředků

Omezení rychlosti požadavků typu ResourceUtilization zahrnuje následující vlastnosti:

Jméno Typ Popis Podporované hodnoty
ResourceKind ResourceKind Prostředek, který se má omezit.

Při ResourceKindTotalCpuSecondsse limit vynucuje na základě sestav po spuštění sestav využití procesoru dokončených požadavků. Požadavky, které hlásí využití procesoru o 0,005 sekundách nebo nižší, se nepočítají. Limit (MaxUtilization) představuje celkový počet sekund procesoru, které můžou požadavky spotřebovávat v zadaném časovém intervalu (TimeWindow). Uživatel, který spouští ad hoc dotazy, může mít například limit 1 000 sekund procesoru za hodinu. Pokud dojde k překročení tohoto limitu, další dotazy se omezí, i když se spustí souběžně, protože kumulativní sekundy procesoru překročily definovaný limit v období posuvného okna.
RequestCount, TotalCpuSeconds
Maximální využití long Maximální počet prostředků, které je možné využít RequestCount: [1, 16777215]; TotalCpuSeconds: [1, 828000]
TimeWindow timespan Posuvné časové období, během kterého se limit použije. [00:01:00, 1.00:00:00]

Když požadavek překročí limit využití prostředků:

  • Stav požadavku, jak je uvedeno příkazy systémové informace, budou Throttled.
  • Chybová zpráva bude obsahovat původu omezování a překročení kvóty. Například:

Následující tabulka uvádí několik příkladů požadavků, které překračují limit míry využití prostředků, a chybovou zprávu, že tyto požadavky vrací:

Scénář Zpráva o chybě
Omezený požadavek klasifikovaný do skupiny úloh s názvem Automated Requests, který má limit 1 000 požadavků za hodinu v rozsahu objektu zabezpečení. Žádost byla zamítnuta kvůli překročení omezení kvóty. Prostředek: RequestCount, Quota: '1000', TimeWindow: '01:00:00', Origin: 'RequestRateLimitPolicy/WorkloadGroup/Automated Requests/Principal/aadapp=9e04c4f5-1abd-48d4-a3d2-9f58615b4724; 6ccf3fe8-6343-4be5-96c3-29a128dd9570'.
Omezený požadavek, který byl klasifikován do skupiny úloh s názvem Automated Requests, který má limit 2000 celkového počtu sekund procesoru za hodinu v rozsahu skupiny úloh. Žádost byla zamítnuta kvůli překročení omezení kvóty. Prostředek: TotalCpuSeconds, Kvóta: 2000, TimeWindow: 01:00:00, Origin: RequestRateLimitPolicy/WorkloadGroup/Automated Requests.
  • Kód odpovědi HTTP bude 429. Podkód bude TooManyRequests.
  • Typ výjimky bude QuotaExceededException.

Vliv konzistence na omezení četnosti

Při silné konzistenci závisí výchozí limit maximálního počtu souběžných požadavků na skladovou položku clusteru a vypočítá se takto: Cores-Per-Node x 10. Například cluster, který je nastavený s uzly Azure D14_v2, kde každý uzel má 16 virtuálních jader, bude mít výchozí limit 16 x 10 = 160.

Při slabé konzistenci závisí efektivní výchozí limit maximálního počtu souběžných požadavků na skladovou položku clusteru a počtu hlav dotazů a vypočítá se takto: Cores-Per-Node x 10 x Number-Of-Query-Heads. Například cluster, který je nastavený pomocí Azure D14_v2 a 5 hlaviček dotazů, kde má každý uzel 16 virtuálních jader, bude mít efektivní výchozí limit 16 x 10 x 5 = 800.

Při silné konzistenci závisí výchozí limit maximálního počtu souběžných požadavků na skladovou položku centra událostí a vypočítá se jako: Cores-Per-Node x 10. Například eventhouse, který je nastavený s uzly Azure D14_v2, kde každý uzel má 16 virtuálních jader, bude mít výchozí limit 16 x 10 = 160.

Při slabé konzistenci závisí efektivní výchozí limit maximálního počtu souběžných požadavků na skladovou položku centra událostí a počtu hlav dotazů a vypočítá se takto: Cores-Per-Node x 10 x Number-Of-Query-Heads. Například eventhouse, který je nastavený pomocí Azure D14_v2 a 5 hlaviček dotazů, kde má každý uzel 16 virtuálních jader, bude mít efektivní výchozí limit 16 x 10 x 5 = 800.

Další informace najdete v tématu konzistence dotazů .

Skupina úloh default

Skupina úloh default má ve výchozím nastavení definovanou následující zásadu. Tuto zásadu je možné změnit.

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

Poznámka

  • Když změníte zásadu pro skupinu úloh default, musí být pro maximální souběžné požadavky definován limit.

Příklady

Následující zásady umožňují:

  • 500 souběžných požadavků pro skupinu úloh.
  • 25 souběžných požadavků na objekt zabezpečení.
  • 50 požadavků na objekt zabezpečení za hodinu.
[
  {
    "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"
    }
  }
]

Následující zásady zablokují všechny požadavky klasifikované skupině úloh:

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