LXC容器显示主机的全部RAM数量和CPU数量

我已经使用LXC容器几年了,最近扩展了在容器环境中运行的应用程序的types。

我现在开始使用configuration参数来限制容器级别的资源:

lxc.cgroup.cpuset.cpus = 16-23 lxc.cgroup.memory.limit_in_bytes = 30720M lxc.cgroup.memory.memsw.limit_in_bytes = 32768M 

我正在和一位正在使用“调优”工具( pgtune )的开发人员合作,为在LXC环境中运行的Postgres数据库生成一个configuration。 这个工具比较老,不太适合虚拟机或者容器感知。 它根据系统可见的RAM进行大小推荐。

那是当我意识到看到所有的主机系统的RAM(96GB)对容器实例可见时在某些情况下可能是有害的。

有没有解决这个问题的方法,还是使用LXC时只是给定的?

目前, proc文件系统在安装命名空间中不是“容器感知”的,所以基于它们的逻辑的工具将获得与主机相关的值而不是与容器相关的值。

但是一个工作正在进行中,它被称为lxc-fs , 在这里可以find几个版本。 这是一个用户空间的解决方法,可以通过/proc来绑定挂载,以便在容器内保持一致。

似乎没有办法绕过它。 LXC使用cgroups进行内存限制,非虚拟化感知工具读取像/proc/meminfo这样的统计信息,这个统计信息包含在LXC中,并将输出系统中的整个RAM。 在容器内部运行时,您可以使用freetop查看此行为。

资料来源: http : //fabiokung.com/2014/03/13/memory-inside-linux-containers/