Sandboxy

Kusto může spouštět sandboxy pro konkrétní toky, které se musí spouštět v zabezpečeném a izolovaném prostředí. Příklady těchto toků jsou uživatelem definované skripty, které se spouští pomocí modulu plug-in Pythonu nebo modulu plug-in R.

Sandboxy se spouští místně (to znamená, že zpracování probíhá v blízkosti dat) bez další latence pro vzdálená volání.

Požadavky a omezení

Runtime (Modul runtime)

  • Operátor dotazu v izolovaném prostoru (sandbox) může ke svému spuštění použít jeden nebo více sandboxů.
    • Sandbox se používá jenom pro jeden dotaz a po dokončení dotazu se odstraní.
    • Při restartování uzlu, například v rámci upgradu služby, se všechny spuštěné sandboxy v něm odstraní.
  • Každý uzel udržuje předdefinovaný počet sandboxů, které jsou připravené ke spouštění příchozích požadavků.
    • Jakmile se sandbox použije, automaticky se zpřístupní nový, který ho nahradí.
  • Pokud nejsou k dispozici žádné předem přidělené sandboxy pro obsluhu operátoru dotazu, dojde k omezení, dokud nebudou k dispozici nové sandboxy. Další informace najdete v tématu Chyby. Přidělení nového sandboxu může trvat až 10 až 15 sekund na jeden sandbox v závislosti na skladové poště a dostupných prostředcích v datovém uzlu.

Parametry sandboxu

Některé parametry je možné řídit pomocí zásad sandboxu na úrovni clusteru pro každý druh sandboxu.

  • Počet sandboxů na uzel: Počet sandboxů na uzel je omezený.
    • Požadavky, které se zasílají, když není k dispozici žádný sandbox, se omezí.
  • Inicializace při spuštění: Pokud je nastavená na false (výchozí), sandboxy se na uzlu líně inicializují, když dotaz poprvé vyžaduje k provedení sandbox. V opačném případě se sandboxy inicializují jako součást spuštění služby, pokud je nastavená na truehodnotu .
    • To znamená, že první spuštění modulu plug-in, který na uzlu používá sandboxy, bude zahrnovat krátkou dobu zahřívací doby.
  • CPU: Maximální rychlost procesoru, kterou může sandbox využívat procesorů hostitele, je omezená (výchozí hodnota je 50%).
    • Po dosažení limitu se využití procesoru v sandboxu omezí, ale provádění pokračuje.
  • Paměti: Maximální velikost paměti RAM, kterou sandbox může spotřebovat, je omezená.
    • Výchozí paměť pro technologii Hyper-V je 1 GB a pro starší sandboxy 20 GB.
    • Dosažení limitu má za následek ukončení sandboxu a chybu provádění dotazu.

Omezení sandboxu

  • Síťové: Sandbox nemůže interagovat s žádným prostředkem na virtuálním počítači ani mimo něj.
    • Sandbox nemůže komunikovat s jiným sandboxem.

Poznámka

Prostředky používané s sandboxem závisejí nejen na velikosti dat zpracovávaných v rámci požadavku, ale také na logice, která běží v sandboxu, a na implementaci knihoven, které se v sandboxu používají. Například pro python moduly plug-in a r to znamená skript zadaný uživatelem a knihovny Pythonu nebo R, které používá za běhu.

Chyby

ErrorCode Stav Zpráva Potenciální důvod
E_SB_QUERY_THROTTLED_ERROR TooManyRequests (429) Dotaz v izolovaném prostoru (sandbox) byl přerušen kvůli omezování. Opakování po určitém zpochybnění může být úspěšné Na cílovém uzlu nejsou k dispozici žádné sandboxy. Nové sandboxy by měly být k dispozici během několika sekund.
E_SB_QUERY_THROTTLED_ERROR TooManyRequests (429) Sandboxy typu {kind} ještě nebyly inicializovány. Nedávno se změnily zásady sandboxu. Nové sandboxy dodržující nové zásady budou k dispozici za několik sekund.
InternalServiceError (520) Dotaz v izolovaném prostoru (sandbox) byl přerušen kvůli chybě při inicializaci sandboxů. Došlo k neočekávanému selhání infrastruktury.

Velikosti virtuálních počítačů podporující vnořenou virtualizaci

Následující tabulka uvádí všechny moderní velikosti virtuálních počítačů, které podporují technologii sandboxu Hyper-V.

Název Kategorie
Standard_L8s_v3 optimalizované pro úložiště
Standard_L16s_v3 optimalizované pro úložiště
Standard_L8as_v3 optimalizované pro úložiště
Standard_L16as_v3 optimalizované pro úložiště
Standard_E8as_v5 optimalizované pro úložiště
Standard_E16as_v5 optimalizované pro úložiště
Standard_E8s_v4 optimalizované pro úložiště
Standard_E16s_v4 optimalizované pro úložiště
Standard_E8s_v5 optimalizované pro úložiště
Standard_E16s_v5 optimalizované pro úložiště
Standard_E2ads_v5 Optimalizované pro výpočty
Standard_E4ads_v5 Optimalizované pro výpočty
Standard_E8ads_v5 Optimalizované pro výpočty
Standard_E16ads_v5 Optimalizované pro výpočty
Standard_E2d_v4 Optimalizované pro výpočty
Standard_E4d_v4 Optimalizované pro výpočty
Standard_E8d_v4 Optimalizované pro výpočty
Standard_E16d_v4 Optimalizované pro výpočty
Standard_E2d_v5 Optimalizované pro výpočty
Standard_E4d_v5 Optimalizované pro výpočty
Standard_E8d_v5 Optimalizované pro výpočty
Standard_E16d_v5 Optimalizované pro výpočty
Standard_D32d_v4 Optimalizované pro výpočty