我正在尝试遵循有关cgroup的指南,例如this one。我不太确定要清楚cgroups目前应该如何工作。但是我确定一件事:我找到的所有指南都记录了/etc/cgconfig.conf/etc/cgrules.conf的用法。这些文件应该由两个守护进程加载,我认为应该将其命名为cgredcgconfig

在Debian Squeeze下,似乎这两个守护程序是通过安装cgroup-bin自动安装的。但是在Wheezy中,这些守护进程不再存在于http://packages.debian.org/fr/wheezy/amd64/cgroup-bin/filelist包中。

我只是试图创建某种共享托管解决方案,并且想限制用户的RAM使用率。有人告诉我有关cgroup的信息,并想尝试一下,但是我不了解如何在Wheezy中使用该版本,并且找不到任何文档可以帮助我。

有人可以告诉我该怎么做吗?那包坏了吗?是否有一些全新的(未公开的)配置cgroup的方法?

最佳答案

作为使用cgroup-bin的替代方法,请查看systemd,它使用cgroup分组/分离用户进程,并且使用资源 Controller 应该可以。

但是,下面我将尝试回答关于cgroup-bin的原始问题

由于存在多个问题,因此我逐步完成:

软件包中缺少初始化脚本。但是,有一部分/usr/share/doc/cgroup-bin/examples/cgred可以正常工作(在系统引导时为我启动cgrulesengd,但尚未重新启动守护程序)。在使用debian之前,请删除源代码中包含一些init功能的init函数。但是,您也可以通过/etc/rc.local启动它。

我有以下cgconfig.conf

mount {
  cpu    = /sys/fs/cgroup ;
  cpuset = /sys/fs/cgroup ;
  memory = /sys/fs/cgroup ;
}

group users {
  memory {
    memory.soft_limit_in_bytes = 512M;
    memory.limit_in_bytes = 1G;
  }

# cpuset seems to be obligatory, adjust the parameters
  cpuset {
    cpuset.cpus = 0-7 ;
    cpuset.mems = 0 ;
  }
}

要加载cgconfig.conf,请执行cgconfigparser -l /etc/cgconfig.conf。您可以在启动时在/etc/rc.local中执行此操作。

Debian默认在内核中禁用memory子系统,因此需要时需要将其激活:在/etc/default/grub中设置内核命令行以加载内存子系统:GRUB_CMDLINE_LINUX_DEFAULT="quiet cgroup_enable=memory"。调用update-grub并重新启动。

现在,您应该在/sys/fs/cgroup中具有一个已装入的cgroup文件系统,并且其中包含users目录。

尝试cgexec -g memory,cpuset:users <command>并查看系统日志中的错误。

关于debian - 尝试在Debian Wheezy中使用cgroups并且没有守护进程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21337522/

10-16 17:28