我正在尝试关注cgroups的指南,比如这个例子.我真的不确定要清楚地了解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中使用该版本,我找不到任何文档来帮助我.
有人能告诉我该怎么办?那个包裹坏了吗?是否有一些全新(和未记录)的方式来配置cgroups?
作为使用cgroup-binlook 的替代方法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 ;
}
}
Run Code Online (Sandbox Code Playgroud)
加载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了一个带有users目录的cgroup文件系统.
尝试cgexec -g memory,cpuset:users <command>并查看syslog以查找错误.