Ao criar uma instância ECI, se os valores de vCPU e memória especificados não atenderem às restrições de especificação do ECI, o sistema ajustará automaticamente a instância para a especificação compatível mais próxima. Esse ajuste pode resultar em uma instância superdimensionada e causar desperdício de recursos. Para contêineres que não afetam a lógica de negócios principal, como contêineres sidecar, defina uma variável de ambiente. Essa configuração instrui o sistema a ignorar o contêiner durante o ajuste de especificação, o que ajuda a evitar desperdício de recursos e reduzir custos com ECI.
Como funciona
Durante a criação de uma instância ECI, você pode especificar a vCPU e a memória para cada contêiner. O total de recursos deve atender às restrições gerais de vCPU e memória da instância ECI. Caso não configure vCPU e memória no nível da instância, o sistema calculará o total necessário para todos os contêineres. Se esse total não corresponder a uma especificação ECI compatível, o sistema realizará automaticamente um ajuste de especificação.
A vCPU e a memória definidas para um contêiner estabelecem seus limites de recursos. O sistema aloca recursos dinamicamente durante a execução. Portanto, para determinados contêineres não críticos dentro de uma instância, defina a variável de ambiente __ECI_RESOURCE_IGNORE__:TRUE. Isso instrui o sistema a ignorar esses contêineres durante o ajuste de especificação, evitando a criação de uma instância superdimensionada e prevenindo o desperdício de recursos.
Por exemplo:

Conforme ilustrado na figura acima, suponha que você esteja criando uma instância ECI na região China (Hangzhou). A instância contém três contêineres: Contêiner 1 e Contêiner 2 (contêineres de negócios), cada um configurado com 2 vCPU e 4 GiB de memória, e Contêiner 3 (um contêiner sidecar), configurado com 0,25 vCPU e 0,5 GiB de memória. Por padrão, o sistema ajusta a especificação da instância para 6 vCPU e 10 GiB de memória. No entanto, essa especificação pode exceder as necessidades reais da sua carga de trabalho. Para otimizar, defina a variável de ambiente __ECI_RESOURCE_IGNORE__:TRUE no contêiner sidecar. Após aplicar essa configuração, o sistema ignora o contêiner sidecar e ajusta a especificação da instância para 4 vCPU e 8 GiB de memória.
Configuração
Ao chamar a API CreateContainerGroup para criar uma instância ECI, especifique a vCPU e a memória de cada contêiner usando os parâmetros Container.N.Cpu e Container.N.Memory, desde que os parâmetros Cpu e Memory no nível da instância não estejam definidos. Para ignorar um contêiner durante o ajuste de especificação, defina a variável de ambiente __ECI_RESOURCE_IGNORE__:TRUE utilizando os parâmetros Container.N.EnvironmentVar.N.Key e Container.N.EnvironmentVar.N.Value. A tabela a seguir descreve os parâmetros relevantes. Para mais informações, consulte CreateContainerGroup.
|
Parâmetro |
Tipo |
Exemplo |
Descrição |
|
Cpu |
Float |
Não especificado |
Tamanho da vCPU da instância. Unidade: núcleos. |
|
Memory |
Float |
Não especificado |
Tamanho da memória da instância. Unidade: GiB. |
|
Container.N.Cpu |
Float |
2 |
Tamanho da vCPU do contêiner. Unidade: núcleos. N representa o índice do contêiner. Há suporte para até 20 contêineres. |
|
Container.N.Memory |
Float |
4 |
Tamanho da memória do contêiner. Unidade: GiB. N representa o índice do contêiner. Há suporte para até 20 contêineres. |
|
Container.N.EnvironmentVar.N.Key |
String |
__ECI_RESOURCE_IGNORE__ |
Nome da variável de ambiente. O primeiro N é o índice do contêiner e o segundo N é o índice da variável de ambiente. |
|
Container.N.EnvironmentVar.N.Value |
String |
TRUE |
Valor da variável de ambiente. O primeiro N é o índice do contêiner e o segundo N é o índice da variável de ambiente. |
Ao criar uma instância ECI pelo console, é obrigatório definir vCPU e memória no nível da instância. Consequentemente, o ajuste de especificação não se aplica.