Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : Windows Server 2025, Windows Server 2022, Windows Server 2019
Plusieurs contrôles de ressources peuvent être implémentés par conteneur et par ressource. Par défaut, les conteneurs exécutés sont soumis à une gestion classique des ressources Windows, qui en général est basée sur un partage équitable, mais bien que la configuration de ces contrôles, un développeur ou un administrateur puisse limiter ou influencer l’utilisation des ressources. Les ressources qui peuvent être contrôlées sont les suivantes : processeur/processeur, mémoire/RAM, disque/stockage et mise en réseau/débit.
Les conteneurs Windows utilisent objets de travail pour regrouper et suivre les processus associés à chaque conteneur. Les contrôles de ressources sont implémentés sur l’objet de travail parent associé au conteneur.
Dans le cas de Hyper-V isolation, les contrôles de ressources sont appliqués automatiquement à la fois à la machine virtuelle et à l'objet de tâche du conteneur s'exécutant à l'intérieur de la machine virtuelle. Cela garantit que même si un processus s'exécutant dans le conteneur contournait ou échappait aux contrôles des objets de tâche, la machine virtuelle veillerait à ce qu'il ne puisse pas dépasser les contrôles de ressources définis.
Ressources
Pour chaque ressource, cette section fournit un mappage entre l’interface de ligne de commande Docker comme exemple de la façon dont le contrôle de ressource peut être utilisé (il peut être configuré par un orchestrateur ou d’autres outils) à l’API HCS (Host Compute Service) Windows correspondante, ainsi que la façon dont le contrôle de ressource a été implémenté par Windows (notez que cette description est de haut niveau et que l’implémentation sous-jacente est susceptible de changer).
Mémoire
| Ressource | Emplacement |
|---|---|
| Interface Docker | --mémoire |
| Interface HCS | MemoryMaximumInMB |
| Noyau partagé | JOB_OBJECT_LIMIT_JOB_MEMORY |
| Isolation Hyper-V | Mémoire de machine virtuelle |
Remarque
Pour l'isolation Hyper-V dans Windows Server 2016, lors de l'utilisation d'une limite de mémoire, le conteneur alloue initialement la quantité maximale de mémoire, puis commence à la retourner à l’hôte du conteneur. Les versions ultérieures de Windows Server (1709 ou version ultérieure) ont optimisé ce processus.
PROCESSEUR (nombre)
| Ressource | Emplacement |
|---|---|
| Interface Docker | --Processeurs |
| Interface HCS | NombreDeProcesseurs |
| Noyau partagé | Simulé par JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP* |
| Isolation Hyper-V | Nombre de processeurs virtuels exposés |
PROCESSEUR (pourcentage)
| Ressource | Emplacement |
|---|---|
| Interface Docker | --cpu-percent |
| Interface HCS | ProcessorMaximum |
| Noyau partagé | JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP |
| Isolation Hyper-V | Limites de l’hyperviseur concernant les processeurs virtuels |
CPU (partages)
| Ressource | Emplacement |
|---|---|
| Interface Docker | --cpu-shares |
| Interface HCS | ProcessorWeight |
| Noyau partagé | JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED |
| Isolation Hyper-V | Poids des processeurs virtuels de l'hyperviseur |
Stockage (image)
| Ressource | Emplacement |
|---|---|
| Interface Docker | --io-maxbandwidth/--io-maxiops |
| Interface HCS | StorageIOPSMaximum et StorageBandwidthMaximum |
| Noyau partagé | JOBOBJECT_IO_RATE_CONTROL_INFORMATION |
| Isolation Hyper-V | JOBOBJECT_IO_RATE_CONTROL_INFORMATION |
Stockage (volumes)
| Ressource | Emplacement |
|---|---|
| Interface Docker | --storage-opt size= |
| Interface HCS | StorageSandboxSize |
| Noyau partagé | JOBOBJECT_IO_RATE_CONTROL_INFORMATION |
| Isolation Hyper-V | JOBOBJECT_IO_RATE_CONTROL_INFORMATION |
Notes ou détails supplémentaires
Configuration requise pour la mémoire
Les conteneurs Windows exécutent un processus système dans chaque conteneur généralement ceux qui fournissent des fonctionnalités par conteneur telles que la gestion des utilisateurs, la mise en réseau, etc. et bien que la majeure partie de la mémoire requise par ces processus soit partagée entre les conteneurs, la limite de mémoire doit être suffisamment élevée pour les permettre. Un tableau est fourni dans le document des exigences système pour chaque type d’image de base, avec et sans isolation Hyper-V.
CPU Shares (sans isolation Hyper-V)
Lorsque vous utilisez des partages de processeur, l’implémentation sous-jacente (lorsqu’elle n’utilise pas l’isolation Hyper-V) configure le JOBOBJECT_CPU_RATE_CONTROL_INFORMATIONen réglant spécifiquement l’indicateur de contrôle sur JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED et en fournissant un poids approprié. Les plages de poids valides de l’objet de travail sont de 1 à 9 avec une valeur par défaut de 5 qui est inférieure à la fidélité des services de calcul hôte de 1 à 1 0000. Par exemple, un poids de partage de 7500 entraînerait un poids de 7 ou un poids de partage de 2500 entraînerait une valeur de 2.