tl; dr
cat /sys/fs/cgroup/memory$(cat /proc/self/cgroup | grep memory | cut -d: -f3)/memory.limit_in_bytes
ou
cat $(mount | grep cgroup | grep memory | cut -d' ' -f3)$(cat /proc/self/cgroup | grep memory | cut -d: -f3)/memory.limit_in_bytes
Se a sua configuração de contêiner padrão permitir informações do cgroup do host de dentro do contêiner (com base na configuração lxc.mount.auto), você poderá simplesmente analisar as informações do cgroup como mostrado abaixo
Verifique suas informações do cgroup em / proc / self / cgroup
root@my-firefox:/# grep memory /proc/self/cgroup
4:memory:/cv/my-firefox
Agora, com base no seu ponto de montagem do cgroup (pode localizar isso em / proc / mounts), verifique o conteúdo do arquivo de limite de memória
root@my-firefox:/# cd /sys/fs/cgroup/memory/cv/my-firefox/
root@my-firefox:/sys/fs/cgroup/memory/cv/my-firefox# cat memory.limit_in_bytes
268435456
No meu caso acima, o cgroup root foi montado em /sys/fs/cgroup
, então com essa informação e o caminho de anexação /memory/cv/my-firefox
, eu poderia consultar todos os limites de memória definidos para o contêiner
Neste caso, o limite é de 256M
PS: gratuito & ansible_memtotal_mb são baseados em host e não são compatíveis com o contêiner. Eu não estou ciente de ansible, mas eu suponho que teria algo semelhante aos fatos no fantoche, onde você poderia escrever um fato personalizado para coletar essa informação