试图在debian wheezy和没有守护进程中使用cgroups

时间:2014-01-24 16:23:11

标签: debian cgroups

我正在尝试关注有关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使用率。我被告知有关cgroups并希望尝试它,但我不明白如何在Wheezy中使用该版本,我找不到任何文档来帮助我。

有人可以告诉我该怎么办?那个包裹坏了吗?是否有一些全新(和未记录)的方法来配置cgroup?

1 个答案:

答案 0 :(得分:8)

作为使用cgroup-bin查看systemd的替代方法,它使用cgroup来分组/分离用户进程,资源控制器的使用应该没问题。

但是,在下文中,我将尝试在cgroup-bin

上回答您的原始问题

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

包中缺少init脚本。但是/usr/share/doc/cgroup-bin/examples/cgred部分工作(在系统启动时为我启动cgrulesengd,但是还没有重启守护进程)。在使用之前,删除源于debian中不存在的一些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中设置内核命令行以加载内存子系统:{{1} }。致电GRUB_CMDLINE_LINUX_DEFAULT="quiet cgroup_enable=memory"并重启。

您现在应该在update-grub中安装了一个装有/sys/fs/cgroup目录的cgroup文件系统。

尝试users并观看系统日志中的错误。