Eu uso contêineres LXC há alguns anos e recentemente expandi os tipos de aplicativos executados dentro de ambientes de contêiner.
Estou começando a limitar os recursos no nível do contêiner agora com parâmetros de configuração como:
lxc.cgroup.cpuset.cpus = 16-23
lxc.cgroup.memory.limit_in_bytes = 30720M
lxc.cgroup.memory.memsw.limit_in_bytes = 32768M
Estou trabalhando com um desenvolvedor que está usando uma ferramenta de "tuning" ( pgtune ) para gerar uma configuração para um banco de dados Postgres que será executado dentro do ambiente LXC. Essa ferramenta é mais antiga e não é totalmente compatível com VM ou contêiner. Faz recomendações de dimensionamento com base na RAM visível para o sistema.
Foi quando percebi que ver toda a RAM do sistema host (96 GB) visível para a instância do contêiner pode ser prejudicial em alguns casos.
Existe alguma solução alternativa para isso ou é apenas um dado ao usar o LXC?
Atualmente, o sistema de
proc
arquivos não é "reconhecimento de contêiner" em namespaces de montagem, portanto, as ferramentas que baseiam sua lógica nisso obterão valores relacionados ao host em vez de valores relacionados ao contêiner.Mas um trabalho está em andamento, chama -se lxc-fs e poucos lançamentos estão disponíveis aqui . Esta é uma solução alternativa de espaço do usuário que possibilitará uma montagem de ligação
/proc
para tornar as coisas consistentes dentro de um contêiner.Parece não haver maneira de contornar isso. O LXC usa cgroups para limitar a RAM e as ferramentas de reconhecimento de não virtualização leem estatísticas como as
/proc/meminfo
que não estão contidas no LXC e produzirão a RAM geral no sistema. Você pode ver esse comportamento comfree
outop
também quando executado dentro do contêiner.Fonte: http://fabiokung.com/2014/03/13/memory-inside-linux-containers/