Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: Windows Server 2025, Windows Server 2022, Windows Server 2019
Há vários controles de recursos que podem ser implementados por contêiner e por recurso. Por padrão, os contêineres executados estão sujeitos ao gerenciamento de recursos típico do Windows, que em geral é baseado em compartilhamento justo, mas embora a configuração desses controles um desenvolvedor ou administrador possa limitar ou influenciar o uso de recursos. Os recursos que podem ser controlados incluem: CPU/Processador, Memória/RAM, Disco/Armazenamento e Rede/Taxa de Transferência.
Os contêineres do Windows utilizam objetos de trabalho para agrupar e acompanhar processos associados a cada contêiner. Os controles de recurso são implementados no objeto de trabalho pai associado ao contêiner.
No caso de isolamento do Hyper-V, controles de recurso são aplicados tanto à máquina virtual quanto ao objeto de trabalho do contêiner que está em execução dentro da máquina virtual. Automaticamente, isso garante que, mesmo que um processo em execução no contêiner tenha driblado ou escapado dos controles dos objetos de trabalho, a máquina virtual garantirá que ele não consiga exceder os controles de recursos definidos.
Recursos
Para cada recurso, esta seção fornece um mapeamento entre a interface de linha de comando do Docker como um exemplo de como o controle de recurso pode ser usado (pode ser configurado por um orquestrador ou outras ferramentas) para a API do HCS (serviço de computação de host do Windows) correspondente, bem como geralmente como o controle de recursos foi implementado pelo Windows (observe que essa descrição é de alto nível e que a implementação subjacente está sujeita a alterações).
Memória
| Recurso | Localização |
|---|---|
| Interface do Docker | --memória |
| Interface HCS | MemoryMaximumInMB |
| Kernel Compartilhado | JOB_OBJECT_LIMIT_JOB_MEMORY |
| Isolamento do Hyper-V | Memória da máquina virtual |
Nota
Para isolamento Hyper-V no Windows Server 2016, ao usar um limite de memória, você verá o contêiner alocar inicialmente o limite de memória e, em seguida, começar a devolvê-la ao host do contêiner. Versões posteriores do Windows Server (1709 ou posterior) otimizaram esse processo.
CPU (número)
| Recurso | Localização |
|---|---|
| Interface do Docker | --Cpus |
| Interface HCS | ProcessorCount |
| Kernel Compartilhado | Simulado com JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP* |
| Isolamento do Hyper-V | Número de processadores virtuais expostos |
CPU (porcentagem)
| Recurso | Localização |
|---|---|
| Interface do Docker | --cpu-percent |
| Interface HCS | ProcessorMaximum |
| Kernel Compartilhado | JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP |
| Isolamento do Hyper-V | Limites do hipervisor em processadores virtuais |
CPU (compartilhamentos)
| Recurso | Localização |
|---|---|
| Interface do Docker | --cpu-shares |
| Interface HCS | Peso do Processador |
| Kernel Compartilhado | JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED |
| Isolamento do Hyper-V | Pesos dos processadores virtuais do hipervisor |
Armazenamento (imagem)
| Recurso | Localização |
|---|---|
| Interface do Docker | --io-maxbandwidth/--io-maxiops |
| Interface HCS | StorageIOPSMaximum e StorageBandwidthMaximum |
| Kernel Compartilhado | JOBOBJECT_IO_RATE_CONTROL_INFORMATION |
| Isolamento do Hyper-V | JOBOBJECT_IO_RATE_CONTROL_INFORMATION |
Armazenamento (volumes)
| Recurso | Localização |
|---|---|
| Interface do Docker | --storage-opt size= |
| Interface HCS | StorageSandboxSize |
| Kernel Compartilhado | JOBOBJECT_IO_RATE_CONTROL_INFORMATION |
| Isolamento do Hyper-V | JOBOBJECT_IO_RATE_CONTROL_INFORMATION |
Anotações ou detalhes adicionais
Requisitos de memória
Os contêineres do Windows executam algum processo de sistema em cada contêiner normalmente aqueles que fornecem funcionalidade por contêiner, como gerenciamento de usuário, rede etc... e, embora grande parte da memória exigida por esses processos seja compartilhada entre contêineres, o limite de memória deve ser alto o suficiente para acomodá-los. Uma tabela é fornecida no documento de requisitos do sistema para cada tipo de imagem base, tanto com quanto sem isolamento Hyper-V.
Compartilhamentos de CPU (sem isolamento do Hyper-V)
Ao usar compartilhamento de CPU, a implementação subjacente (sem isolamento Hyper-V) configura o JOBOBJECT_CPU_RATE_CONTROL_INFORMATION, definindo especificamente o sinalizador de controle como JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED e fornecendo um Peso apropriado. As faixas de peso válidas do objeto de trabalho são de 1 a 9, com um padrão de 5, o que é menos preciso do que os valores de serviços de computação do host, que variam de 1 a 10000. Como exemplos, um peso de compartilhamento de 7.500 resultaria em um peso de 7, ou um peso de compartilhamento de 2.500 resultaria em um peso de 2.