As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Gerenciamento de memória de instâncias de contêiner
Quando o agente de contêiner do Amazon ECS registra uma instância de contêiner em um cluster, o agente deve determinar quanta memória a instância de contêiner tem disponível para reservar para suas tarefas. Devido à sobrecarga de memória da plataforma e à memória ocupada pelo kernel do sistema, esse número é diferente da memória instalada anunciada para instâncias do Amazon EC2. Por exemplo, uma instância m4.large
tem 8 GiB de memória instalada. No entanto, isso nem sempre se traduz em exatamente 8192 MiB de memória disponível para tarefas quando a instância do contêiner é registrada.
O agente de contêiner do Amazon ECS fornece uma variável de configuração chamadaECS_RESERVED_MEMORY
, que você pode usar para remover um número específico de MiB de memória do pool que é alocado para suas tarefas. Isso reserva de forma efetiva a memória para processos críticos do sistema.
Se você ocupar toda a memória em uma instância de contêiner com suas tarefas, é possível que suas tarefas enfrentem processos críticos do sistema para obter memória e, possivelmente, iniciem uma falha no sistema.
Por exemplo, se você especificar ECS_RESERVED_MEMORY=256
no arquivo de configuração do agente de contêiner, o agente registrará a memória total menos 256 MiB para essa instância, e 256 MiB de memória não poderão ser atribuídos para tarefas do ECS. Para obter mais informações sobre as variáveis de configuração do agente e como configurá-las, consulte Configuração do agente de contêiner do Amazon ECS e Bootstrap de instâncias de contêiner com dados de usuário do Amazon EC2.
Se você especificar 8192 MiB para a tarefa e nenhuma de suas instâncias de contêiner tiver 8192 MiB ou mais de memória disponível para atender a esse requisito, a tarefa não poderá ser colocada em seu cluster. Se você estiver usando um ambiente computacional gerenciado, AWS Batch deverá iniciar um tipo de instância maior para acomodar a solicitação.
Você também deve reservar uma quantidade específica de memória para o agente de contêiner do Amazon ECS e outros processos do sistema essenciais nas instâncias de contêiner, para que os contêineres da tarefa não disputem a mesma memória e não iniciem uma possível falha do sistema.
O atendente de contêiner do Amazon ECS usa a função ReadMemInfo()
do Docker para consultar a memória disponível total para o sistema operacional. Tanto o Linux quanto o Windows fornecem utilitários de linha de comando para determinar a memória total.
exemplo - Determinar a memória total do Linux
O comando free retorna a memória total reconhecida pelo sistema operacional.
$
free -b
Exemplo de saída para uma instância m4.large
executando a AMI do Amazon Linux otimizada para Amazon ECS.
total used free shared buffers cached Mem:
8373026816
348180480 8024846336 90112 25534464 205418496 -/+ buffers/cache: 117227520 8255799296
Essa instância tem 8.373.026.816 bytes de memória total, ou seja, 7.985 MiB estão disponíveis para tarefas.
exemplo - Determinar a memória total do Windows
O comando wmic retorna a memória total reconhecida pelo sistema operacional.
C:\>
wmic ComputerSystem get TotalPhysicalMemory
Exemplo de saída para uma m4.large
instância executando a AMI do Windows Server otimizada para Amazon ECS.
TotalPhysicalMemory
8589524992
Essa instância tem 8.589.524.992 bytes de memória total, ou seja, 8.191 MiB estão disponíveis para tarefas.
Visualizando a memória da instância do contêiner
Você pode ver a quantidade de memória em que uma instância de contêiner é registrada no console do Amazon ECS (ou com a operação da DescribeContainerInstancesAPI). Se você estiver tentando maximizar a utilização de recursos fornecendo às suas tarefas o máximo de memória possível para um determinado tipo de instância, você pode observar a memória disponível para essa instância de contêiner e, em seguida, atribuir essa quantidade de memória às suas tarefas.
Para visualizar a memória da instância do contêiner
Abra o console em https://console.aws.amazon.com/ecs/v2
. -
No painel de navegação, escolha Clusters e, em seguida, escolha o cluster que hospeda sua instância de contêiner.
-
Escolha Infraestrutura e, em Instâncias de contêiner, escolha uma instância de contêiner.
-
A seção Recursos mostra a memória registrada e disponível para a instância do contêiner.
O valor da memória registrada é o que é a instância do contêiner; registrada no Amazon ECS quando foi lançada pela primeira vez, e o valor da memória disponível é o que ainda não foi alocado às tarefas.