沙盒策略
适用于:✅Azure 数据资源管理器
某些插件会在沙盒中运行,沙盒中的可用资源受到限制和控制,以提高安全性并治理资源。
沙盒在群集的节点上运行。 它们的某些限制将在沙盒策略中定义,其中每种沙盒类型都可以有其自己的策略。
沙盒策略在群集级别进行管理,并影响群集中的所有节点。
权限
你必须具有 AllDatabasesAdmin 权限才能运行此命令。
策略对象
沙盒策略具有以下属性。
- SandboxKind:定义沙盒的类型(如
PythonExecution
、RExecution
)。 - IsEnabled:定义此类型的沙箱是否可以在群集的节点上运行。
- 默认值为 false。
- InitializeOnStartup:定义在启动时是初始化此类型的沙盒,还是等到首次使用时再初始化。
- 默认值为 false。 若要确保性能一致并避免在服务重启后运行查询的任何延迟,请将此属性设置为 true。
- TargetCountPerNode:定义允许在群集节点上运行的此类型的沙盒数。
- 值可以是每个节点的处理器数的一到两倍。
- 默认值为 16。
- MaxCpuRatePerSandbox:将最大 CPU 使用率定义为单个沙盒可以使用的所有可用核心的百分比。
- 值可以介于 1 到 100 之间。
- 默认值为 50。
- MaxMemoryMbPerSandbox:定义单个沙盒可以使用的最大内存量(以 MB 为单位)。
- 对 Hyper-V 技术沙盒而言,值可以介于 200 到 32768 (32 GB) 之间。 默认值为 1024 (1 GB)。 一个节点 (TargetCountPerNode * MaxMemoryMbPerSandbox) 上所有沙盒的最大内存为 32768 (32 GB)。
- 对于旧的沙盒,值可以介于 200 到 65536 (64 GB) 之间。 默认值为 20480 (20 GB)。
如果未显式为某种沙盒类型定义策略,则会应用具有默认值且 IsEnabled
设置为 true
的隐式策略。
示例
以下策略为 PythonExecution
和 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
}
]
注意
- 在策略更改生效之前,可能会有最多五分钟的延迟,因为群集需要回收在策略更改之前已经预分配过的沙盒。