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

nic*_*van 5 debian cgroups

我正在尝试关注cgroups的指南,比如这个例子.我真的不确定要清楚地了解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中使用该版本,我找不到任何文档来帮助我.

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

Han*_*nes 8

作为使用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以查找错误.