Snowpark Container Services : nouvelles valeurs par défaut et validation des besoins en ressources pour un service

Attention

Ce changement de comportement est présent dans le bundle 2024_06.

Pour connaître le statut actuel du bundle, reportez-vous à Historique du bundle.

Attention

Ce changement de comportement devait être introduit avec le bundle 2024_05. Cependant, il a été reporté et se trouve désormais dans le bundle 2024_06.

Vous fournissez les besoins en ressources pour un service dans la spécification de service.

La manière dont Snowflake gère les services avec des besoins en ressources non spécifiés est en train de changer. De plus, la manière dont Snowflake valide les besoins en ressources spécifiés est en train de changer :

Avant la modification:
  • Si vous ne fournissez aucune exigence en matière de ressources, Snowflake suppose que votre service consommera des ressources négligeables.

  • Lorsque vous fournissez les besoins en ressources, Snowflake valide les valeurs par rapport à la capacité totale du nœud. Les ressources consommées par les composants du système Snowpark Container Services ne sont pas prises en compte.

Après la modification:

Si les exigences en matière de ressources ne sont pas fournies, les valeurs par défaut suivantes sont appliquées. Notez que resource.requests et resource.limits sont relatifs à la capacité du nœud (vCPU et mémoire) de la famille d’instances du pool de calcul associé.

  • Si une demande de ressource (CPU, mémoire ou les deux) n’est pas fournie, Snowflake en dérive une pour vous :

    • Pour cpu, la valeur dérivée est soit 0,5 soit la limite cpu que vous avez fournie, selon la plus petite des deux.

    • Pour memory, la valeur dérivée est soit 0,5 GiB ou la limite memory que vous avez fournie, selon la plus petite des deux.

  • Si aucune limite de ressources (processeur, mémoire ou les deux) n’est fournie, Snowflake définit par défaut les limites de la capacité du nœud pour la famille d’instances du pool de calcul associé.

  • Si vous fournissez resource.limits et qu’elles dépassent la capacité du nœud, Snowflake plafonnera la limite de la capacité du nœud.

  • Snowflake évalue ces besoins en ressources de manière indépendante pour cpu et memory.

Notez que s’il est théoriquement impossible pour Snowflake de planifier le service sur le pool de calcul donné, CREATE SERVICE échouera. Théoriquement impossible, on suppose que le pool de calcul dispose du nombre maximal de nœuds autorisés et qu’aucun autre service n’est en cours d’exécution sur le pool de calcul. Autrement dit, Snowflake ne peut en aucun cas allouer les ressources demandées dans les limites du pool de calcul. Si c’est théoriquement possible, mais que les ressources nécessaires sont utilisées, alors CREATE SERVICE réussira. Certaines instances de service signaleront un statut indiquant que le service ne peut pas être planifié en raison de ressources insuffisantes jusqu’à ce que des ressources soient disponibles.

Aussi, avec ce BCR, la capacité du nœud (vCPU et la mémoire) pour chaque type d’instance a changé comme indiqué :

Famille d’instances

vCPU . avant modification

vCPU . après modification

Mémoire (GiB) . avant modification

Mémoire (GiB) . après modification

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 . (AWS uniquement)

8

6

32

27

GPU_NV_M . (AWS uniquement)

48

44

192

178

GPU_NV_L . (AWS uniquement)

96

92

1152

1112

GPU_NV_XS . (Azure uniquement)

4

3

28

26

GPU_NV_SM . (Azure uniquement)

36

32

440

424

GPU_NV_2M . (Azure uniquement)

72

68

880

858

GPU_NV_3M . (Azure uniquement)

48

44

440

424

GPU_NV_SL . (Azure uniquement)

96

92

880

858

Réf : 1648