Qual é o valor para o limit_in_bytes do cgroup se a memória não for restrita / ilimitada?

2

Imprimindo o valor de um contêiner docker ilimitado, recebo o valor 9223372036854771712, que é 0x7FFFFFFFFFFFF000 (esse é o mesmo valor da máquina host XUbuntu). Não consegui encontrar uma referência de que esse é o valor padrão do Docker ou do Linux que indica um recurso de memória ilimitado.

De onde vem esse valor? É diferente entre Virtualizações de Contêineres ou Distribuições / Bitnesses do Linux?

    
por Christian Ammer 31.01.2018 / 12:10

2 respostas

3

O valor vem da configuração do cgroup na camada de gerenciamento de memória; Por padrão, é definido como PAGE_COUNTER_MAX , que é LONG_MAX / PAGE_SIZE em plataformas de 64 bits e multiplicado por PAGE_SIZE quando lido .

Isso confirma da ilkkachu / 420911/86440 "> explanação : o valor é o inteiro assinado máximo de 64 bits, arredondado para a página mais próxima (eliminando os últimos bits).

    
por 01.02.2018 / 12:10
2

Esse é o maior inteiro assinado de 64 bits positivo (2 63 -1), arredondado para múltiplos de 4096 (2 12 ), o tamanho de página mais comum em sistemas x86. Parece difícil obter algo maior, evitando possíveis confusões entre assinados e não assinados, de modo que parece pelo menos uma aproximação razoável para o infinito.

Dito isso, eu não sei ao certo, isso é apenas um palpite.

    
por 31.01.2018 / 12:21