3

我想创建一个新的 cgroup 并将该组的 RAM 访问限制为 1MB。

这是我的第一次尝试:

mkdir /sys/fs/cgroup/mygroup
mount -t cgroup -o memory mygroup /sys/fs/cgroup/mygroup

但我不断收到此错误

mount: /sys/fs/cgroup/mygroup already mounted or /sys/fs/cgroup/mygroup busy

我尝试了使用 cgcreate 的不同方法

cgcreate -g memory:mygroup2

但是当我跑步时cgexect -g memory:mygroup2 ./a.out

我收到此错误:cgroup change of group failed

我还看到我们可以通过更改 /etc/cgconfig.cf 文件来创建一个组,但即使我已经安装了 libcgroup1 和 cgroup-bin,我在 /etc 中也找不到类似的东西。请帮忙!

提前致谢!

4

1 回答 1

3

如果 cgroup 文件系统已经挂载,我相信不需要挂载你的新目录。您可以通过键入以下命令来检查以确保 cgroup 文件系统已安装:

cat /proc/mounts | grep cgroup

如果它返回如下内容,您就知道它已安装:

cgroup /sys/fs/cgroup/memory ...

接下来,如果你想创建一个限制内存访问的cgroup,我相信你应该在内存子目录中创建你的新cgroup,而不是在cgroup目录的根目录下。它应该看起来像这样:

mkdir /sys/fs/cgroup/memory/mycgroup

从那里,您可以使用 echo 命令将任务添加到您的 cgroup 中:

echo $pid > /sys/fs/cgroup/memory/mycgroup/tasks

最后,您可以通过以下方式将内存使用量限制为 1MB:

echo 1M > /sys/fs/cgroup/memory/mycgroup/memory.max_usage_in_bytes

希望这可以帮助。

于 2014-03-10T20:39:46.353 回答