Udostępnij za pośrednictwem


Zasady limitów żądań

Dotyczy: ✅Microsoft FabricAzure Data Explorer

Zasady limitów żądań grupy obciążeń umożliwiają ograniczenie zasobów używanych przez żądanie podczas wykonywania.

Obiekt zasad

Każdy limit składa się z:

  • Typizowane Value — wartość limitu.
  • IsRelaxable — wartość logiczna określająca, czy limit może zostać złagodzony przez obiekt wywołujący, w ramach właściwości żądania żądania.

Można konfigurować następujące limity:

Własność Typ Opis Obsługiwane wartości Dopasowywanie właściwości żądania klienta
DataScope string Zakres danych zapytania. Ta wartość określa, czy zapytanie ma zastosowanie do wszystkich danych, czy tylko gorącej pamięci podręcznej. All, HotCachelub null query_datascope
MaxMemoryPerQueryPerNode long Maksymalna ilość pamięci (w bajtach), którą może przydzielić zapytanie. [1, 50% całkowitejpamięci RAM jednego węzła ] max_memory_consumption_per_query_per_node
MaxMemoryPerIterator long Maksymalna ilość pamięci (w bajtach) operatora zapytania , może przydzielić. [1, Min(32212254720, 50% całkowitej pamięci RAM jednego węzła)] maxmemoryconsumptionperiterator
MaxFanoutThreadsPercentage int Procent wątków w każdym węźle, do których ma być przeprowadzane wykonywanie zapytań. Po ustawieniu wartości 100%klaster przypisuje wszystkie procesory CPU w każdym węźle. Na przykład 16 procesorów CPU w klastrze wdrożonym w węzłach usługi Azure D14_v2. [1, 100] query_fanout_threads_percent
MaxFanoutNodesPercentage int Procent węzłów w klastrze do wentylatora wykonywania zapytań. Funkcje w podobny sposób do MaxFanoutThreadsPercentage. [1, 100] query_fanout_nodes_percent
MaxResultRecords long Maksymalna liczba rekordów, które może zwrócić żądanie do obiektu wywołującego, poza którym wyniki są obcinane. Limit obcięcia wpływa na końcowy wynik zapytania, który został dostarczony z powrotem do klienta. Jednak limit obcinania nie ma zastosowania do pośrednich wyników podzapytania, takich jak te, które wynikają z odwołań między klastrami. [1, 9223372036854775807] truncationmaxrecords
MaxResultBytes long Maksymalny rozmiar danych (w bajtach) żądania może wrócić do obiektu wywołującego, poza którym wyniki są obcinane. Limit obcięcia wpływa na końcowy wynik zapytania, który został dostarczony z powrotem do klienta. Jednak limit obcinania nie ma zastosowania do pośrednich wyników podzapytania, takich jak te, które wynikają z odwołań między klastrami. [1, 9223372036854775807] truncationmaxsize
MaxExecutionTime timespan Maksymalny czas trwania żądania.
uwagi :
1) Może to służyć do umieszczenia większej liczby limitów na podstawie domyślnych limitów czasu wykonywania, ale nie rozszerzać ich.
2) Przetwarzanie limitu czasu nie jest w rozdzielczości sekund, a nie jest przeznaczone do zapobiegania uruchamianiu zapytania przez minuty.
3) Czas potrzebny na odczytanie ładunku z powrotem na kliencie nie jest traktowany jako część limitu czasu. Zależy to od tego, jak szybko obiekt wywołujący pobiera dane ze strumienia.
4) Całkowity czas wykonywania może przekroczyć skonfigurowaną wartość, jeśli przerwanie wykonywania trwa dłużej.
[00:00:00, 01:00:00] servertimeout
Własność Typ Opis Obsługiwane wartości Dopasowywanie właściwości żądania klienta
DataScope string Zakres danych zapytania. Ta wartość określa, czy zapytanie ma zastosowanie do wszystkich danych, czy tylko gorącej pamięci podręcznej. All, HotCachelub null query_datascope
MaxMemoryPerQueryPerNode long Maksymalna ilość pamięci (w bajtach), którą może przydzielić zapytanie. [1, 50% całkowitejpamięci RAM jednego węzła ] max_memory_consumption_per_query_per_node
MaxMemoryPerIterator long Maksymalna ilość pamięci (w bajtach) operatora zapytania , może przydzielić. [1, Min(32212254720, 50% całkowitej pamięci RAM jednego węzła)] maxmemoryconsumptionperiterator
MaxFanoutThreadsPercentage int Procent wątków w każdym węźle, do których ma być przeprowadzane wykonywanie zapytań. Po ustawieniu wartości 100%usługa Eventhouse przypisuje wszystkie procesory CPU w każdym węźle. Na przykład 16 procesorów CPU w centrum zdarzeń wdrożonych w węzłach usługi Azure D14_v2. [1, 100] query_fanout_threads_percent
MaxFanoutNodesPercentage int Procent węzłów w usłudze Eventhouse do wentylatora wykonywania zapytań. Funkcje w podobny sposób do MaxFanoutThreadsPercentage. [1, 100] query_fanout_nodes_percent
MaxResultRecords long Maksymalna liczba rekordów, które może zwrócić żądanie do obiektu wywołującego, poza którym wyniki są obcinane. Limit obcięcia wpływa na końcowy wynik zapytania, który został dostarczony z powrotem do klienta. Jednak limit obcinania nie ma zastosowania do pośrednich wyników podzapytania, takich jak wyniki z odwołań między magazynami zdarzeń. [1, 9223372036854775807] truncationmaxrecords
MaxResultBytes long Maksymalny rozmiar danych (w bajtach) żądania może wrócić do obiektu wywołującego, poza którym wyniki są obcinane. Limit obcięcia wpływa na końcowy wynik zapytania, który został dostarczony z powrotem do klienta. Jednak limit obcięcia nie ma zastosowania do pośrednich wyników podzapytania, takich jak wyniki z odwołań między magazynami zdarzeń. [1, 9223372036854775807] truncationmaxsize
MaxExecutionTime timespan Maksymalny czas trwania żądania.
uwagi :
1) Może to służyć do umieszczenia większej liczby limitów na podstawie domyślnych limitów czasu wykonywania, ale nie rozszerzać ich.
2) Przetwarzanie limitu czasu nie jest w rozdzielczości sekund, a nie jest przeznaczone do zapobiegania uruchamianiu zapytania przez minuty.
3) Czas potrzebny na odczytanie ładunku z powrotem na kliencie nie jest traktowany jako część limitu czasu. Zależy to od tego, jak szybko obiekt wywołujący pobiera dane ze strumienia.
4) Całkowity czas wykonywania może przekroczyć skonfigurowaną wartość, jeśli przerwanie wykonywania trwa dłużej.
[00:00:00, 01:00:00] servertimeout

Nuta

Limit, który nie jest zdefiniowany lub jest zdefiniowany jako null, jest pobierany z zasad limitów żądań grupy obciążeń default.

Użycie zasobów procesora CPU

Zapytania mogą używać wszystkich zasobów procesora CPU w klastrze. Domyślnie, gdy wiele zapytań jest uruchomionych współbieżnie, system stosuje dość okrężne podejście do dystrybucji zasobów. Ta strategia jest optymalna w celu osiągnięcia wysokiej wydajności za pomocą zapytań ad hoc.

Zapytania mogą używać wszystkich zasobów procesora CPU w usłudze Eventhouse. Domyślnie, gdy wiele zapytań jest uruchomionych współbieżnie, system stosuje dość okrężne podejście do dystrybucji zasobów. Ta strategia jest optymalna w celu osiągnięcia wysokiej wydajności za pomocą zapytań ad hoc.

Istnieją jednak scenariusze, w których można ograniczyć zasoby procesora CPU przydzielone do określonego zapytania. Jeśli na przykład uruchamiasz zadanie w tle, które może obsługiwać wyższe opóźnienia. Zasady limitów żądań zapewniają elastyczność określania niższej wartości procentowej wątków lub węzłów, które mają być używane podczas wykonywania rozproszonych operacji podzapytania. Ustawieniem domyślnym jest 100%.

Grupa obciążeń default

Grupa obciążeń default ma domyślnie zdefiniowane następujące zasady. Te zasady można zmienić.

{
  "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"
  }
}

Nuta

  • Limity w grupie obciążeń default muszą być zdefiniowane i mają wartość inną niżnull.
  • Wszystkie limity w grupie obciążeń default mają ustawioną IsRelaxable na wartość true.
  • Limity żądań są wyłączone dla określonych typów poleceń w grupie obciążeń default, takich jak polecenia .export i pozyskiwanie z poleceń zapytań, takich jak .set-or-append i .set-or-replace. Gdy te polecenia są przypisywane do grupy obciążeń niezdefiniowanych, limity żądań określone w zasadach staną się stosowane.

Przykład

Poniższy kod JSON reprezentuje obiekt zasad limitów żądań niestandardowych:

{
  "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"
  }
}