我想创建一个新的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中找到类似的内容。请帮忙!
提前致谢!
答案 0 :(得分: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
希望这有帮助。