我已经使用 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
答案2
似乎没有办法解决这个问题。LXC 使用 cgroup 来限制 RAM,而非虚拟化感知工具会读取如下统计数据/proc/meminfo
:不是包含在 LXC 中,并将输出系统中的总 RAM。在容器内运行时,您也可以使用free
或看到此行为。top
来源:http://fabiokung.com/2014/03/13/memory-inside-linux-containers/