无需安装即可读取cgroups数据

时间:2014-09-16 17:59:13

标签: linux linux-kernel resources docker cgroups

我有一些cgroups管理的服务(实际上在docker中运行)。为了公平地安排一些需要资源的任务,容器化服务需要准确(尽可能)了解资源使用情况。我决定从cgroups中读取这些指标。

但是有一个问题。我知道两种从docker容器访问cgroup数据的方法。

  1. 直接从容器内部安装cgroup。为此,我需要为容器提供CAP_SYS_ADMIN功能。我认为这只是阅读资源使用指标的过硬方式。

  2. 使用docker volume,指向主机cgroups mountpoint。这个解决方案或多或少是合适的,但我看起来更优雅。

  3. 我不是一个“内核人”,不熟悉内核源代码和文档,所以我可以问一下noob的问题。

    是否有任何内核接口允许我在不挂载cgroups文件系统的情况下读取cgroups指标?

1 个答案:

答案 0 :(得分:2)

您在用户空间中获得的唯一接口是通过挂载cgroup或/proc/<pid>/cgourps,(但仅限于进程所属的cgroup)。如果您正在寻找用于读取cgroups数据的系统调用(),则其不可用的IMU。 Docker需要运行cgroups服务(cgconfig,cgred等),因此它需要你安装cgroups。