Dela via


Princip för begränsning av begäranden

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

En arbetsbelastningsgrupps princip för begärandebegränsningar gör det möjligt att begränsa de resurser som används av begäran under körningen.

Principobjektet

Varje gräns består av:

  • Ett skrivet Value – värdet för gränsen.
  • IsRelaxable – ett booleskt värde som definierar om gränsen kan minskas av anroparen, som en del av begärans egenskaper för begäran.

Följande gränser kan konfigureras:

Egenskap Typ Beskrivning Värden som stöds Matchande egenskap för klientbegäran
DataScope string Frågans dataomfång. Det här värdet avgör om frågan gäller för alla data eller bara den frekventa cachen. All, HotCacheeller null query_datascope
MaxMemoryPerQueryPerNode long Den maximala mängden minne (i byte) som en fråga kan allokera. [1, 50% av en enskild nods totala RAM-] max_memory_consumption_per_query_per_node
MaxMemoryPerIterator long Den maximala mängden minne (i byte) som en frågeoperator kan allokera. [1, 50% av en enskild nods totala RAM-] maxmemoryconsumptionperiterator
MaxFanoutThreadsPercentage int Procentandelen trådar på varje nod som frågekörningen ska köras till. När värdet är 100%tilldelar klustret alla processorer på varje nod. Till exempel 16 processorer i ett kluster som distribuerats på Azure D14_v2 noder. [1, 100] query_fanout_threads_percent
MaxFanoutNodesPercentage int Procentandelen noder i klustret som frågekörningen ska köras till. Funktioner på ett liknande sätt som MaxFanoutThreadsPercentage. [1, 100] query_fanout_nodes_percent
MaxResultRecords long Det maximala antalet poster som en begäran får returnera till anroparen, utöver vilka resultaten trunkeras. Trunkeringsgränsen påverkar det slutliga resultatet av frågan, som levereras tillbaka till klienten. Trunkeringsgränsen gäller dock inte för mellanliggande resultat av underfrågor, till exempel de som beror på korsklusterreferenser. [1, 9223372036854775807] truncationmaxrecords
MaxResultBytes long Den maximala datastorleken (i byte) som en begäran tillåts återgå till anroparen, utöver vilken resultaten trunkeras. Trunkeringsgränsen påverkar det slutliga resultatet av frågan, som levereras tillbaka till klienten. Trunkeringsgränsen gäller dock inte för mellanliggande resultat av underfrågor, till exempel de som beror på korsklusterreferenser. [1, 9223372036854775807] truncationmaxsize
MaxExecutionTime timespan Den maximala varaktigheten för en begäran.
anteckningar:
1) Detta kan användas för att placera fler gränser ovanpå standard gränser för körningstid, men inte utöka dem.
2) Timeout-bearbetningen är inte i upplösningen på sekunder, snarare är den utformad för att förhindra att en fråga körs i minuter.
3) Den tid det tar att läsa nyttolasten på klienten behandlas inte som en del av tidsgränsen. Det beror på hur snabbt anroparen hämtar data från strömmen.
4) Total körningstid kan överskrida det konfigurerade värdet om det tar längre tid att avbryta körningen.
[00:00:00, 01:00:00] servertimeout
Egenskap Typ Beskrivning Värden som stöds Matchande egenskap för klientbegäran
DataScope string Frågans dataomfång. Det här värdet avgör om frågan gäller för alla data eller bara den frekventa cachen. All, HotCacheeller null query_datascope
MaxMemoryPerQueryPerNode long Den maximala mängden minne (i byte) som en fråga kan allokera. [1, 50% av en enskild nods totala RAM-] max_memory_consumption_per_query_per_node
MaxMemoryPerIterator long Den maximala mängden minne (i byte) som en frågeoperator kan allokera. [1, 50% av en enskild nods totala RAM-] maxmemoryconsumptionperiterator
MaxFanoutThreadsPercentage int Procentandelen trådar på varje nod som frågekörningen ska köras till. När värdet är 100%tilldelar Eventhouse alla processorer på varje nod. Till exempel 16 processorer i ett händelsehus som distribuerats på Azure D14_v2 noder. [1, 100] query_fanout_threads_percent
MaxFanoutNodesPercentage int Procentandelen noder i Eventhouse som frågekörningen ska köras till. Funktioner på ett liknande sätt som MaxFanoutThreadsPercentage. [1, 100] query_fanout_nodes_percent
MaxResultRecords long Det maximala antalet poster som en begäran får returnera till anroparen, utöver vilka resultaten trunkeras. Trunkeringsgränsen påverkar det slutliga resultatet av frågan, som levereras tillbaka till klienten. Trunkeringsgränsen gäller dock inte för mellanliggande resultat av underfrågor, till exempel resultaten från korshändelsehusreferenser. [1, 9223372036854775807] truncationmaxrecords
MaxResultBytes long Den maximala datastorleken (i byte) som en begäran tillåts återgå till anroparen, utöver vilken resultaten trunkeras. Trunkeringsgränsen påverkar det slutliga resultatet av frågan, som levereras tillbaka till klienten. Trunkeringsgränsen gäller dock inte för mellanliggande resultat av underfrågor, till exempel resultat från korshändelsehusreferenser. [1, 9223372036854775807] truncationmaxsize
MaxExecutionTime timespan Den maximala varaktigheten för en begäran.
anteckningar:
1) Detta kan användas för att placera fler gränser ovanpå standard gränser för körningstid, men inte utöka dem.
2) Timeout-bearbetningen är inte i upplösningen på sekunder, snarare är den utformad för att förhindra att en fråga körs i minuter.
3) Den tid det tar att läsa nyttolasten på klienten behandlas inte som en del av tidsgränsen. Det beror på hur snabbt anroparen hämtar data från strömmen.
4) Total körningstid kan överskrida det konfigurerade värdet om det tar längre tid att avbryta körningen.
[00:00:00, 01:00:00] servertimeout

Not

En gräns som inte har definierats eller definieras som null, tas från default arbetsbelastningsgruppens princip för begärandebegränsningar.

Cpu-resursanvändning

Frågor kan använda alla CPU-resurser i klustret. När flera frågor körs samtidigt använder systemet som standard en rättvis resursallokeringsmetod för att distribuera resurser. Den här strategin är optimal för att uppnå höga prestanda med ad hoc-frågor.

Frågor kan använda alla CPU-resurser i Eventhouse. När flera frågor körs samtidigt använder systemet som standard en rättvis resursallokeringsmetod för att distribuera resurser. Den här strategin är optimal för att uppnå höga prestanda med ad hoc-frågor.

Det finns dock scenarier där du kanske vill begränsa de CPU-resurser som allokeras till en specifik fråga. Om du till exempel kör ett bakgrundsjobb som kan hantera högre svarstider. Principen för begärandebegränsningar ger flexibiliteten att ange en lägre procentandel trådar eller noder som ska användas vid körning av distribuerade underfrågor. Standardinställningen är 100%.

Arbetsbelastningsgruppen default

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

{
  "DataScope": {
    "IsRelaxable": true,
    "Value": "All"
  },
  "MaxMemoryPerQueryPerNode": {
    "IsRelaxable": true,
    "Value": < 50% of a single node's total RAM >
  },
  "MaxMemoryPerIterator": {
    "IsRelaxable": true,
    "Value": 5368709120
  },
  "MaxFanoutThreadsPercentage": {
    "IsRelaxable": true,
    "Value": 100
  },
  "MaxFanoutNodesPercentage": {
    "IsRelaxable": true,
    "Value": 100
  },
  "MaxResultRecords": {
    "IsRelaxable": true,
    "Value": 500000
  },
  "MaxResultBytes": {
    "IsRelaxable": true,
    "Value": 67108864
  },
  "MaxExecutiontime": {
    "IsRelaxable": true,
    "Value": "00:04:00"
  }
}

Not

  • Gränser i default arbetsbelastningsgrupp måste definieras och ha ett värde som inte ärnull.
  • Alla gränser i default arbetsbelastningsgrupp har IsRelaxable inställt på true.
  • Begärandegränser inaktiveras för specifika kommandotyper i arbetsbelastningsgruppen default, till exempel .export-kommandon och inmatning från-kommandon som .set-or-append och .set-or-replace. När dessa kommandon tilldelas till en nondefault-arbetsbelastningsgrupp blir de begärandegränser som anges i principen tillämpliga.

Exempel

Följande JSON representerar ett principobjekt för anpassade begärandens begränsningar:

{
  "DataScope": {
    "IsRelaxable": true,
    "Value": "HotCache"
  },
  "MaxMemoryPerQueryPerNode": {
    "IsRelaxable": true,
    "Value": 2684354560
  },
  "MaxMemoryPerIterator": {
    "IsRelaxable": true,
    "Value": 2684354560
  },
  "MaxFanoutThreadsPercentage": {
    "IsRelaxable": true,
    "Value": 50
  },
  "MaxFanoutNodesPercentage": {
    "IsRelaxable": true,
    "Value": 50
  },
  "MaxResultRecords": {
    "IsRelaxable": true,
    "Value": 1000
  },
  "MaxResultBytes": {
    "IsRelaxable": true,
    "Value": 33554432
  },
  "MaxExecutiontime": {
    "IsRelaxable": true,
    "Value": "00:01:00"
  }
}