Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Que savoir à propos de l’attribution du processeur dans Amazon ECS ?
Je souhaite attribuer les processeurs à des tâches dans Amazon Elastic Container Service (Amazon ECS), mais je ne sais pas comment procéder.
Brève description
Lorsque vous créez une définition de tâche, il est recommandé de définir des quotas pour les ressources du processeur au niveau de la tâche et au niveau du conteneur. Vous pouvez ajuster les valeurs d'allocation du processeur pour gérer les performances globales de votre cluster Amazon ECS.
Résolution
Amazon ECS utilise des unités de processeur en tant qu’unité de mesure standard pour les ressources du processeur. Un processeur virtuel pour Linux équivaut à 1 024 processeurs. Par exemple, 2 048 processeurs équivalent à 2 processeurs virtuels. Vous pouvez spécifier des processeurs ou des processeurs virtuels dans votre définition de tâche. ECS convertit automatiquement les valeurs de processeur virtuel en processeurs lors de l'enregistrement.
Remarque : Les conteneurs Windows ignorent les paramètres du processeur et de la mémoire au niveau des tâches. La meilleure pratique pour les conteneurs Windows est de spécifier les ressources au niveau du conteneur. Pour plus d’informations, consultez Taille de la tâche.
Attribution du processeur au niveau des tâches
Vous pouvez exécuter des tâches Amazon ECS sur des instances AWS Fargate ou Amazon Elastic Compute Cloud (Amazon EC2). Le comportement d'allocation du processeur au niveau des tâches diffère d'une plate-forme à une autre.
AWS Fargate
Pour Linux et Windows, AWS Fargate requiert un paramètre cpu au niveau de la tâche pour attribuer les ressources demandées à la tâche. Vous pouvez sélectionner les valeurs de memory et cpu parmi les tailles de tâches prédéfinies qui sont disponibles pour AWS Fargate.
Instances Amazon EC2
Remarque : Le paramètre cpu est facultatif pour les tâches exécutées sur des instances Linux.
Si vous définissez le paramètre cpu dans Linux, ce paramètre présente les quotas suivants :
- L’accès à vos conteneurs est limité en fonction de la quantité de processeur que vous définissez au niveau de la tâche.
- Le paramètre processeur de tâche définit un quota de processeur pour tous les conteneurs et une réservation de processeur minimale lorsqu'Amazon ECS planifie la tâche sur une instance de conteneur.
- Amazon ECS convertit les processeurs en partages de processeur Linux dans le cadre de la tâche. Linux utilise ces partages comme mécanisme pondéré pour déterminer la priorité d'accès au processeur.
- Le paramètre processeur que vous définissez au niveau de la tâche définit les ressources de processeur maximales autorisées pour les tâches du conteneur. Les conteneurs qui s’exécutent dans cette configuration de tâche ne peuvent utiliser que la capacité que vous spécifiez dans la taille de la tâche.
Le scénario suivant est un exemple d'allocation et d'utilisation d'unités de processeur sur une instance EC2.
Vous enregistrez une instance m5.large dans un cluster qui fournit 2 048 processeurs. Une tâche s'exécute sur l'instance et utilise 1 024 processeurs que vous définissez au niveau de la tâche. L'instance affiche une utilisation de processeur EC2 de 68 %. Cette configuration permet de conserver 1 024 processeurs disponibles dans le pool de l'instance. L'utilisation actuelle du processeur n'affecte pas le nombre de processeurs que vous pouvez planifier pour de nouvelles tâches. Même si le taux d'utilisation d’instances dépasse 50 %, vous pouvez toujours utiliser tous les processeurs disponibles dans le pool d'instances pour de nouvelles tâches.
Avec les 1024 processeurs restants, vous pouvez planifier deux tâches supplémentaires, chacune avec 512 processeurs au niveau de la tâche ou du conteneur. Vous pouvez également planifier une tâche avec deux conteneurs qui utilisent 1 024 processeurs au niveau de la tâche et 512 processeurs pour chaque conteneur. Si vous ne spécifiez pas de processeurs, vous pouvez planifier autant de tâches qu'ECS prend en charge pour votre mode réseau. Cette action n'affecte pas les processeurs de votre instance de conteneur.
Allocation de processeur au niveau du conteneur
Amazon ECS évalue les définitions de processeur au niveau du conteneur au moment de la planification et lors de l'exécution lorsqu'aucun conflit de processeur n'existe. Le comportement d'allocation varie en fonction de la configuration de vos tâches et du type de plate-forme.
Comportement du temps de planification
Les facteurs suivants influent sur la manière dont Amazon ECS planifie les tâches sur vos instances de conteneur :
- Si vous n’établissez pas de définition de processeur au niveau des tâches, le nombre total de processeurs que vous définissez dans vos conteneurs devient la réservation de processeur.
- Le nombre total de processeurs figurant dans la définition au niveau du conteneur de votre processeur ne peut pas dépasser le nombre de processeurs que vous définissez au niveau de la tâche.
Comportement de l’exécution
Les facteurs suivants influent sur l'allocation du processeur lorsque la tâche est en cours d'exécution, en particulier en l’absence de conflit de processeur :
- Si vous établissez une définition de processeur au niveau des tâches, vos conteneurs peuvent accéder uniquement aux ressources du processeur jusqu'à la valeur de processeur que vous définissez au niveau de la tâche.
- Si vous n’établissez pas de définition de processeur au niveau des tâches, les conteneurs de votre tâche peuvent accéder à toutes les ressources du processeur de votre instance. Cela s'applique quelle que soit la définition de processeur que vous établissez au niveau du conteneur.
- Si vous utilisez des instances Windows qui ne prennent pas en charge le processeur au niveau de la tâche, vos conteneurs utilisent la définition de processeur au niveau du conteneur. Windows applique le quota comme absolu. Pour plus d’informations, consultez la section Environnement.
- Pour les instances de conteneur Linux, les définitions de processeur au niveau du conteneur sont directement mappées aux paramètres de CpuShares. Pour plus d’informations, consultez la page Créer une API de conteneur sur le site Web de Docker.
Conflit de processeur
Le conflit de processeur se produit lorsque plusieurs processus demandent du temps d’utilisation de processeur. En cas de conflit de processeurs, Amazon ECS limite vos conteneurs en fonction des ressources que vous définissez dans votre définition de processeur au niveau du conteneur.
Important : Vérifiez que l'application qui s'exécute sur Amazon ECS peut détecter les paramètres du conteneur. Certaines applications, telles que Java 10, détectent les paramètres du conteneur et utilisent uniquement les quotas de processeur que vous définissez au niveau du conteneur. Ces applications utilisent la définition au niveau du conteneur même en cas de conflit de processeur.
Informations connexes
Comment attribuer de la mémoire aux tâches dans Amazon ECS ?
- Sujets
- Containers
- Langue
- Français
Vidéos associées


Contenus pertinents
- demandé il y a 5 mois
- demandé il y a 6 mois
- demandé il y a 9 mois
- demandé il y a 3 ans