Princip för begränsning av begäranden
Gäller för: ✅Microsoft Fabric✅Azure 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 , HotCache eller 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 , HotCache eller 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 harIsRelaxable
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"
}
}