Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: Windows Server 2025, Windows Server 2022, Windows Server 2019
Hay varios controles de recursos que se pueden implementar por contenedor y por recurso. De forma predeterminada, los contenedores ejecutados están sujetos a la administración típica de recursos de Windows, que en general se basa en recursos compartidos justos, pero aunque la configuración de estos controles un desarrollador o administrador puede limitar o influir en el uso de recursos. Los recursos que se pueden controlar incluyen: CPU/procesador, memoria/RAM, disco,almacenamiento y redes/rendimiento.
Los contenedores de Windows usan objetos de trabajo para agrupar y realizar un seguimiento de los procesos asociados a cada contenedor. Los controles de recursos se implementan en el objeto de trabajo primario asociado al contenedor.
En el caso de Hyper-V controles de recursos de aislamiento se aplican tanto a la máquina virtual como al objeto de trabajo del contenedor que se ejecuta dentro de la máquina virtual automáticamente, esto garantiza que, incluso si un proceso que se ejecuta en el contenedor omite o escapa los objetos de trabajo controla la máquina virtual, se aseguraría de que no podía superar los controles de recursos definidos.
Recursos
Para cada recurso, esta sección proporciona una asignación entre la interfaz de la línea de comandos de Docker como ejemplo de cómo se puede usar el control de recursos (un orquestador u otras herramientas) a la API del servicio de proceso host de Windows (HCS) correspondiente, así como generalmente cómo se ha implementado el control de recursos por Windows (tenga en cuenta que esta descripción es de alto nivel y que la implementación subyacente está sujeta a cambios).
Memoria
| Recurso | Ubicación |
|---|---|
| Interfaz de Docker | --memoria |
| Interfaz HCS | MemoryMaximumInMB |
| Kernel compartido | JOB_OBJECT_LIMIT_JOB_MEMORY |
| Aislamiento de Hyper-V | Memoria de la máquina virtual |
Nota:
Para Hyper-V aislamiento en Windows Server 2016, al usar un límite de memoria, verá que el contenedor asigna inicialmente la cantidad de memoria límite y, a continuación, empieza a devolverla al host del contenedor. Las versiones posteriores de Windows Server (1709 o posterior) han optimizado este proceso.
CPU (recuento)
| Recurso | Ubicación |
|---|---|
| Interfaz de Docker | --Cpus |
| Interfaz HCS | ProcessorCount de |
| Kernel compartido | Simulado con JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP* |
| Aislamiento de Hyper-V | Número de procesadores virtuales expuestos |
CPU (porcentaje)
| Recurso | Ubicación |
|---|---|
| Interfaz de Docker | --cpu-percent |
| Interfaz HCS | ProcessorMaximum |
| Kernel compartido | JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP |
| Aislamiento de Hyper-V | Límites del hipervisor en procesadores virtuales |
CPU (recursos compartidos)
| Recurso | Ubicación |
|---|---|
| Interfaz de Docker | --cpu-shares |
| Interfaz HCS | ProcessorWeight |
| Kernel compartido | JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED |
| Aislamiento de Hyper-V | Pesos de los procesadores virtuales del hipervisor |
Almacenamiento (imagen)
| Recurso | Ubicación |
|---|---|
| Interfaz de Docker | --io-maxbandwidth/-io-maxiops |
| Interfaz HCS | StorageIOPSMaximum y StorageBandwidthMaximum |
| Kernel compartido | JOBOBJECT_IO_RATE_CONTROL_INFORMATION |
| Aislamiento de Hyper-V | JOBOBJECT_IO_RATE_CONTROL_INFORMATION |
Almacenamiento (volúmenes)
| Recurso | Ubicación |
|---|---|
| Interfaz de Docker | --storage-opt size= |
| Interfaz HCS | StorageSandboxSize |
| Kernel compartido | JOBOBJECT_IO_RATE_CONTROL_INFORMATION |
| Aislamiento de Hyper-V | JOBOBJECT_IO_RATE_CONTROL_INFORMATION |
Notas o detalles adicionales
Requisitos de memoria
Los contenedores de Windows ejecutan algún proceso del sistema en cada contenedor normalmente aquellos que proporcionan funcionalidad por contenedor, como la administración de usuarios, las redes, etc. y aunque gran parte de la memoria requerida por estos procesos se comparte entre los contenedores, el límite de memoria debe ser lo suficientemente alto como para permitirles. Se proporciona una tabla en el documento de requisitos del sistema para cada tipo de imagen base y con y sin Hyper-V aislamiento.
Recursos compartidos de CPU (sin aislamiento de Hyper-V)
Cuando el uso de CPU comparte la implementación subyacente (cuando no se usa el aislamiento de Hyper-V) configura el JOBOBJECT_CPU_RATE_CONTROL_INFORMATION, estableciendo específicamente la marca de control en JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED y proporcionando un peso adecuado. Los intervalos de peso válidos del objeto de trabajo son de 1 a 9 con un valor predeterminado de 5, que es menor fidelidad que los valores de los servicios de proceso del host de 1 a 10000. Como ejemplos, un peso compartido de 7500 daría como resultado un peso de 7 o un peso compartido de 2500 daría como resultado un valor de 2.