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

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

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

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

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

我正在与一位使用“调整”工具的开发人员合作(页面) 来生成将在 LXC 环境中运行的 Postgres 数据库的配置。此工具较旧,并且不太支持 VM 或容器。它根据系统可见的 RAM 提出大小建议。

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

有没有什么解决方法,或者这只是使用 LXC 时才会出现的情况?

答案1

当前,proc文件系统在挂载命名空间中不是“容器感知的”,因此基于此逻辑的工具将获取与主机相关的值而不是与容器相关的值。

但有一项工作正在进行中,它被称为韓國語很少有版本可在此处获得。这是一个用户空间解决方法,可以实现绑定挂载,/proc从而使容器内部保持一致。

答案2

似乎没有办法解决这个问题。LXC 使用 cgroup 来限制 RAM,而非虚拟化感知工具会读取如下统计数据/proc/meminfo不是包含在 LXC 中,并将输出系统中的总 RAM。在容器内运行时,您也可以使用free或看到此行为。top

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

相关内容