Pourquoi le ratio est important
Pour le placement sans serveur, CoreWeave mesure le CPU et la mémoire séparément, en fonction de la capacité que vous réservez et non de celle que vous consommez. Un sandbox qui demande 1 CPU et 64 Gio de mémoire est facturé pour la totalité des 64 Gio pendant toute sa fenêtre d’exécution, même s’il n’alloue jamais plus de 1 Gio. Le ratio influe également sur le placement. Un nœud dispose d’une quantité fixe de chaque ressource : des demandes de ressources répétées qui privilégient une ressource peuvent donc le saturer tout en laissant l’autre inutilisée. Prenons un exemple simplifié : un nœud doté de 32 CPU allouables et de 128 Gio de mémoire allouable. Deux bacs à sable demandant chacun 1 CPU et 64 Gio réserveraient la totalité des 128 Gio, mais seulement 2 des 32 CPU. Cet exemple ne tient compte que des demandes de ressources des charges de travail ; le placement réel prend également en compte la surcharge du runtime, les autres charges de travail et les éventuels budgets d’allocation de nœud.Partir du profil de l’hôte
Pour un placement sur CoreWeave Kubernetes Service (CKS), comparez votre demande de ressources au CPU et à la mémoire allouables des Nœuds éligibles, ainsi qu’aux éventuels budgets d’allocation des Nœuds. Tenez compte des ressources allouables plutôt que de la RAM nominale installée sur un Nœud. Pour un placement sans serveur, CoreWeave gère la capacité et la politique : ne partez pas du principe que chaque demande de ressources utilise un SKU de Nœud particulier. Une demande de ressourcescpu de 1 réserve un vCPU. Pour obtenir le nombre de Gio par CPU, divisez la mémoire demandée en Gio par le nombre de CPU demandés. Les demandes de ressources dont la mémoire par CPU dépasse le ratio allouable d’un Nœud éligible risquent d’être limitées par la mémoire. À l’inverse, les demandes de ressources dont la mémoire par CPU est inférieure à ce ratio risquent d’être limitées par le CPU. La capacité disponible et les autres charges de travail influent également sur le placement.
Choisissez le CPU et la mémoire à partir de mesures effectuées sur une charge de travail représentative, puis ajustez chaque ressource en fonction de son utilisation. Les allocations suivantes illustrent le calcul du ratio ; il ne s’agit pas de recommandations adaptées à une charge de travail précise :
Une demande de ressources doit également respecter la politique qui régit son placement, laquelle peut imposer un maximum inférieur à celui que permet le profil de l’hôte. Voir Limites et quotas.
Pour les bacs à sable GPU, le CPU et la mémoire doivent être dimensionnés séparément : une demande de ressources GPU ne réserve que des GPU. Voir Bacs à sable GPU.
Définir les demandes de ressources et les limites
Pour le placement sans serveur, qui est le mode par défaut, définissez des demandes de ressources et des limites identiques pour le CPU et la mémoire. La valeur demandée correspond à la valeur réservée et comptabilisée pour votre facturation. Avec des valeurs identiques, aucune marge de dépassement n’est possible : dimensionnez donc la demande de ressources en fonction du pic de la charge de travail. La sandbox suivante réserve 2 CPU et 4 Gio pendant toute la durée de son exécution :Mesurer la consommation de vos bacs à sable
Avant de modifier une demande de ressources, comparez la capacité réservée à la consommation réelle. Les requêtes suivantes nécessitent un accès aux métriques de l’organisation CoreWeave via Grafana ou l’API de métriques ; consultez les prérequis des métriques. Si vous utilisez des identifiants d’authentification Forge, consultez Afficher l’utilisation des sandbox pour connaître les graphiques d’utilisation disponibles. La requête suivante renvoie la mémoire consommée sur l’ensemble de la flotte, exprimée en fraction de la mémoire réservée :Plafonner les demandes de ressources sur un exécuteur
Une politique de l’exécuteur borne ce que tout conteneur de cet exécuteur peut demander et, au moyen des plafonds, le total de ressources qu’une sandbox entière peut obtenir après résolution. Définissez conjointement les limites de CPU et de mémoire afin qu’une sandbox ne puisse pas demander une ressource indépendamment de l’autre :CWSANDBOX_RESOURCE_CEILING_EXCEEDED. Voir Configurer une politique de sandbox et la référence ResourceConstraints.
Ces limites s’appliquent à chaque ressource de façon indépendante : une politique qui autorise 8 CPU et 32 Gio autorise également 1 CPU avec 32 Gio. Pour limiter la part d’un nœud que les bacs à sable d’un exécuteur peuvent occuper au total, voir Configurer les budgets d’allocation de nœud.