我一直在讨论这个问题--cgroup只是不想在重新加载配置文件时工作(挂在挂载上),每次都要重新启动才能生效。
这是我的步骤:
(1)操作系统的重新启动。(2.)cgsnapshot -s
# Configuration file generated by cgsnapshot
mount {
cpuset = /sys/fs/cgroup/cpuset;
cpu = /sys/fs/cgroup/cpu;
cpuacct = /sys/fs/cgroup/cpuacct;
memory = /sys/fs/cgroup/memory;
devices = /sys/fs/cgroup/devices;
freezer = /sys/fs/cgroup/freezer;
net_cls = /sys/fs/cgroup/net_cls;
blkio = /sys/fs/cgroup/blkio;
perf_event = /sys/fs/cgroup/perf_event;
}(3.)cgclear(4.)cgsnapshot -s
# Configuration file generated by cgsnapshot(5.)cgconfigparser -l /etc/cgconfig.conf (6.)cgsnapshot -s
mount {
cpu = /cgroup/cpu_mem_blkio;
cpuacct = /cgroup/cpu_mem_blkio;
memory = /cgroup/cpu_mem_blkio;
blkio = /cgroup/cpu_mem_blkio;
}
group hello1 {
...
group hello2 {
...(7)bash脚本/etc/rc.d/rc.cgred start
现在一切都正常,但是当我这样做时(相同的配置):
(8.)cgclear (9.)cgconfigparser -l /etc/cgconfig.conf
它永远挂着,当我使用strace时,它会停在:
安装( "cgroup“、"/cgroup/cpu_mem_ blkio”、“cgroup”、0、"cpu、cpuacct、blkio、memory") =?ERESTARTNOINTR (将重新启动)
谁能指点我出什么事了吗?我怎样才能添加新的组,而不重新启动?这是cgroup的正常行为吗?
我甚至尝试从这里添加此修补程序。
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
<at> <at> -1909,7 +1909,7 <at> <at> static void cgroup_kill_sb(struct super_block *sb)
*
* And don't kill the default root.
*/
- if (css_has_online_children(&root->cgrp.self) ||
+ if (!list_empty(&root->cgrp.self.children) ||
root == &cgrp_dfl_root)
cgroup_put(&root->cgrp);
else还在测试,但看起来是一样的。
发布于 2015-09-10 11:23:54
看起来这样做是正确的,就是从命令行设置所有内容。
mount -t cgroup -o cpu,memory,blkio,cpuacct cpu_mem_blkio /cgroup/cpu_mem_blkio
mkdir /cgroup/cpu_mem_blkio/hello1
mkdir /cgroup/cpu_mem_blkio/hello2
echo 200 > /cgroup/cpu_mem_blkio/hello1/cpu.shares
echo 200M > /cgroup/cpu_mem_blkio/hello1/memory.limit_in_bytes
echo 400M > /cgroup/cpu_mem_blkio/hello1/memory.memsw.limit_in_bytes
echo 100 > /cgroup/cpu_mem_blkio/hello1/blkio.weight
...https://stackoverflow.com/questions/32486277
复制相似问题