Snowpark Container Services:服务的新默认值和资源需求验证¶
注意
此行为变更原计划在 2024_05 捆绑包中推出。但已推迟,现在包含在 2024_06 捆绑包中。
您在服务规范中提供服务的 资源需求。
Snowflake 处理未指定资源需求的服务的方式正在发生变化。此外,Snowflake 验证指定资源需求的方式也在发生变化:
- 变更前:
如果您不提供任何资源需求,Snowflake 会假定您的服务将消耗极少的资源。
当您提供资源需求时,Snowflake 会根据整个节点容量验证这些值。不考虑 Snowpark Container Services 系统组件所消耗的资源。
- 变更后:
如果未提供资源需求,则应用以下默认值。请注意,
resource.requests
和resource.limits
与相关 计算池 的实例系列的节点容量(vCPU 和内存)有关。如果没有提供资源需求(CPU、内存或两者),Snowflake 会为您派生一个:
对于
cpu
,派生的值要么是 0.5,要么是您提供的cpu
限制,以较小者为准。对于
memory
,派生的值要么是 0.5 GiB,要么是您提供的memory
限制,以较小者为准。
如果未提供资源限制(CPU、内存或两者),Snowflake 默认会将限制设置为相关 计算池 的实例系列的节点容量。
如果您提供
resource.limits
并且超出了节点容量,Snowflake 将设置节点容量上限。Snowflake 独立评估
cpu
和memory
的资源需求。
请注意,如果 Snowflake 理论上无法在给定的计算池上安排服务,CREATESERVICE 将会失败。理论上不可能假设计算池具有允许的最大节点数,并且计算池上没有运行其他服务。也就是说,Snowflake 无法在计算池限制内分配请求的资源。如果理论上可行,但所需资源正在使用中,那么 CREATE SERVICE 将会成功。一些服务实例会报告状态,表明由于资源不足,无法安排服务,直到资源可用为止。
此外,通过此 BCR,每种实例类型的节点容量(vCPU 和内存)均发生了变化,如下所示:
实例系列 |
vCPU . 变更前 |
vCPU . 变更后 |
内存 (GiB) . 变更前 |
内存 (GiB) . 变更后 |
---|---|---|---|---|
CPU_X64_XS |
2 |
1 |
8 |
6 |
CPU_X64_S |
4 |
3 |
16 |
13 |
CPU_X64_M |
8 |
6 |
32 |
28 |
CPU_X64_L |
32 |
28 |
128 |
116 |
HIGHMEM_X64_S |
8 |
6 |
64 |
58 |
HIGHMEM_X64_M |
32 |
28 |
256 (AWA) . 256 (Azure) |
240 (AWS) . 244 (Azure) |
HIGHMEM_X64_L |
128 (AWS) . 96 (Azure) |
124 (AWS) . 92 (Azure) |
1024 (AWS) . 672 (Azure) |
984 (AWS) . 654 (Azure) |
GPU_NV_S :newline:`.`(仅限 AWS) |
8 |
6 |
32 |
27 |
GPU_NV_M :newline:`.`(仅限 AWS) |
48 |
44 |
192 |
178 |
GPU_NV_L :newline:`.`(仅限 AWS) |
96 |
92 |
1152 |
1112 |
GPU_NV_XS :newline:`.`(仅限 Azure) |
4 |
3 |
28 |
26 |
GPU_NV_SM :newline:`.`(仅限 Azure) |
36 |
32 |
440 |
424 |
GPU_NV_2M :newline:`.`(仅限 Azure) |
72 |
68 |
880 |
858 |
GPU_NV_3M :newline:`.`(仅限 Azure) |
48 |
44 |
440 |
424 |
GPU_NV_SL :newline:`.`(仅限 Azure) |
96 |
92 |
880 |
858 |
参考:1648