Partager via


Stratégie de bac à sable

Certains plug-ins s’exécutent dans des bacs à sable dont les ressources disponibles sont limitées et contrôlées pour la sécurité et la gouvernance des ressources.

Les bacs à sable s’exécutent sur les nœuds de votre cluster. Certaines de leurs limitations sont définies dans les stratégies de bac à sable, où chaque type de bac à sable peut avoir sa propre stratégie.

Les stratégies de bac à sable sont gérées au niveau du cluster et affectent tous les nœuds du cluster.

Autorisations

Vous devez disposer des autorisations AllDatabasesAdmin pour exécuter cette commande.

Par objet de stratégie

Une stratégie de bac à sable a les propriétés suivantes.

  • SandboxKind : définit le type du bac à sable (par exemple, PythonExecution, ). RExecution
  • IsEnabled : définit si des bacs à sable de ce type peuvent s’exécuter sur les nœuds du cluster.
    • La valeur par défaut est false.
  • InitializeOnStartup : définit si les bacs à sable de ce type sont initialisés au démarrage, ou de manière différée, lors de la première utilisation.
    • La valeur par défaut est false. Pour garantir des performances cohérentes et éviter les retards d’exécution des requêtes après le redémarrage du service, définissez cette propriété sur true.
  • TargetCountPerNode : définit le nombre de bacs à sable de ce type autorisés à s’exécuter sur les nœuds du cluster.
    • Les valeurs peuvent être comprises entre un et deux fois le nombre de processeurs par nœud.
    • La valeur par défaut est 16.
  • MaxCpuRatePerSandbox : définit le taux d’uc maximal sous la forme d’un pourcentage de tous les cœurs disponibles qu’un seul bac à sable peut utiliser.
    • Les valeurs peuvent être comprises entre 1 et 100.
    • La valeur par défaut est 50.
  • MaxMemoryMbPerSandbox : définit la quantité maximale de mémoire (en mégaoctets) qu’un seul bac à sable peut utiliser.
    • Pour les bacs à sable de technologie Hyper-V, les valeurs peuvent être comprises entre 200 et 32 768 (32 Go). La valeur par défaut est 1 024 (1 Go). La mémoire maximale de tous les bacs à sable sur un nœud (TargetCountPerNode * MaxMemoryMbPerSandbox) est de 32768 (32 Go).
    • Pour les bacs à sable hérités, les valeurs peuvent être comprises entre 200 et 65536 (64 Go). La valeur par défaut est 20480 (20 Go).

Si une stratégie n’est pas explicitement définie pour un type de bac à true sable, une stratégie implicite avec les valeurs par défaut et IsEnabled définie sur s’applique.

Exemple

La stratégie suivante définit différentes limites pour PythonExecution les bacs à sable et RExecution :

[
  {
    "SandboxKind": "PythonExecution",
    "IsEnabled": true,
    "InitializeOnStartup": false,
    "TargetCountPerNode": 4,
    "MaxCpuRatePerSandbox": 55,
    "MaxMemoryMbPerSandbox": 8192
  },
  {
    "SandboxKind": "RExecution",
    "IsEnabled": true,
    "InitializeOnStartup": false,
    "TargetCountPerNode": 2,
    "MaxCpuRatePerSandbox": 50,
    "MaxMemoryMbPerSandbox": 10240
  }
]

Notes

  • Il peut y avoir un délai pouvant atteindre cinq minutes jusqu’à ce que la modification de la stratégie prenne effet, car le cluster doit recycler les bacs à sable qui ont été pré-alloués avant la modification de la stratégie.