Partager via


Bacs à sable

Kusto peut exécuter des bacs à sable pour des flux spécifiques qui doivent être exécutés dans un environnement sécurisé et isolé. Ces flux sont des scripts définis par l’utilisateur qui s’exécutent à l’aide du plug-in Python ou du plug-in R.

Les bacs à sable sont exécutés localement (ce qui signifie que le traitement est effectué à proximité des données), sans latence supplémentaire pour les appels distants.

Conditions préalables et limitations

Runtime

  • Un opérateur de requête en bac à sable (sandbox) peut utiliser un ou plusieurs bacs à sable pour son exécution.
    • Un bac à sable n’est utilisé que pour une seule requête et est supprimé une fois cette requête terminée.
    • Lorsqu’un nœud est redémarré, par exemple, dans le cadre d’une mise à niveau du service, tous les bacs à sable en cours d’exécution sont supprimés.
  • Chaque nœud gère un nombre prédéfini de bacs à sable prêts à exécuter des requêtes entrantes.
    • Une fois qu’un bac à sable est utilisé, un nouveau bac à sable est automatiquement mis à disposition pour le remplacer.
  • Si aucun bac à sable pré-alloué n’est disponible pour servir un opérateur de requête, il est limité jusqu’à ce que de nouveaux bacs à sable soient disponibles. Pour plus d’informations, consultez Erreurs. La nouvelle allocation de bac à sable peut prendre jusqu’à 10 à 15 secondes par bac à sable, en fonction de la référence SKU et des ressources disponibles sur le nœud de données.

Paramètres de bac à sable

Certains paramètres peuvent être contrôlés à l’aide d’une stratégie de bac à sable au niveau du cluster, pour chaque type de bac à sable.

  • Nombre de bacs à sable par nœud : Le nombre de bacs à sable par nœud est limité.
    • Les demandes effectuées lorsqu’il n’y a pas de bac à sable disponible sont limitées.
  • Initialiser au démarrage : si la valeur est définie sur (valeur par défaut), les bacs à false sable sont initialisés tardivement sur un nœud, la première fois qu’une requête nécessite un bac à sable pour son exécution. Sinon, si la valeur est définie sur , les bacs à truesable sont initialisés dans le cadre du démarrage du service.
    • Cela signifie que la première exécution d’un plug-in qui utilise des bacs à sable sur un nœud inclut une courte période de préchauffement.
  • CPU: La vitesse maximale de processeur qu’un bac à sable peut consommer des processeurs de son hôte est limitée (la valeur par défaut est 50%).
    • Lorsque la limite est atteinte, l’utilisation du processeur du bac à sable est limitée, mais l’exécution continue.
  • Mémoire: La quantité maximale de RAM qu’un bac à sable peut consommer de la RAM de son hôte est limitée.
    • La mémoire par défaut pour la technologie Hyper-V est de 1 Go et de 20 Go pour les bacs à sable hérités.
    • L’atteinte de la limite entraîne l’arrêt du bac à sable et une erreur d’exécution de requête.

Limitations du bac à sable

  • Réseau: Un bac à sable ne peut pas interagir avec une ressource sur la machine virtuelle ou en dehors de celle-ci.
    • Un bac à sable ne peut pas interagir avec un autre bac à sable.

Notes

Les ressources utilisées avec le bac à sable dépendent non seulement de la taille des données traitées dans le cadre de la requête, mais également de la logique qui s’exécute dans le bac à sable et de l’implémentation des bibliothèques utilisées par celui-ci. Par exemple, pour les python plug-ins et r , ce dernier signifie le script fourni par l’utilisateur et les bibliothèques Python ou R qu’il consomme au moment de l’exécution.

Erreurs

ErrorCode Statut Message Raison potentielle
E_SB_QUERY_THROTTLED_ERROR TooManyRequests (429) La requête en bac à sable a été abandonnée en raison de la limitation. Une nouvelle tentative après une interruption peut réussir Il n’existe aucun bac à sable disponible sur le nœud cible. Les nouveaux bacs à sable doivent être disponibles dans quelques secondes
E_SB_QUERY_THROTTLED_ERROR TooManyRequests (429) Les bacs à sable de type « {kind} » n’ont pas encore été initialisés La stratégie de bac à sable a récemment changé. De nouveaux bacs à sable obéissant à la nouvelle stratégie seront disponibles dans quelques secondes
InternalServiceError (520) La requête en bac à sable a été abandonnée en raison d’un échec d’initialisation des bacs à sable Défaillance inattendue de l’infrastructure.

Tailles de machine virtuelle prenant en charge la virtualisation imbriquée

Le tableau suivant répertorie toutes les tailles de machines virtuelles modernes qui prennent en charge la technologie de bac à sable Hyper-V.

Nom Catégorie
Standard_L8s_v3 Optimisé pour le stockage
Standard_L16s_v3 Optimisé pour le stockage
Standard_L8as_v3 Optimisé pour le stockage
Standard_L16as_v3 Optimisé pour le stockage
Standard_E8as_v5 Optimisé pour le stockage
Standard_E16as_v5 Optimisé pour le stockage
Standard_E8s_v4 Optimisé pour le stockage
Standard_E16s_v4 Optimisé pour le stockage
Standard_E8s_v5 Optimisé pour le stockage
Standard_E16s_v5 Optimisé pour le stockage
Standard_E2ads_v5 Optimisé pour le calcul
Standard_E4ads_v5 Optimisé pour le calcul
Standard_E8ads_v5 Optimisé pour le calcul
Standard_E16ads_v5 Optimisé pour le calcul
Standard_E2d_v4 Optimisé pour le calcul
Standard_E4d_v4 Optimisé pour le calcul
Standard_E8d_v4 Optimisé pour le calcul
Standard_E16d_v4 Optimisé pour le calcul
Standard_E2d_v5 Optimisé pour le calcul
Standard_E4d_v5 Optimisé pour le calcul
Standard_E8d_v5 Optimisé pour le calcul
Standard_E16d_v5 Optimisé pour le calcul
Standard_D32d_v4 Optimisé pour le calcul