我正在尝试关注有关cgroup的指南,例如this one。我真的不确定要清楚地了解cgroups目前应该如何工作。但我确定一件事:我找到的所有指南都记录了/etc/cgconfig.conf
和/etc/cgrules.conf
的用法。这些文件应该由两个守护进程加载,我认为这些守护进程应该命名为cgred
和cgconfig
。
在Debian Squeeze下,似乎是通过安装cgroup-bin
自动安装的两个守护进程。但是在Wheezy中,这些守护进程在包中不再存在:http://packages.debian.org/fr/wheezy/amd64/cgroup-bin/filelist。
我只是想创建某种共享托管解决方案,我想限制用户的RAM使用率。我被告知有关cgroups并希望尝试它,但我不明白如何在Wheezy中使用该版本,我找不到任何文档来帮助我。
有人可以告诉我该怎么办?那个包裹坏了吗?是否有一些全新(和未记录)的方法来配置cgroup?
答案 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
并观看系统日志中的错误。