我在尝试使用 cpuset 子系统分离 2 个组时遇到了问题。这很好用,但是如果我要向该组添加一个子组(在本例中为 user1),cgconfig 将无法启动,并显示“无法删除非空组”。删除组 abusers/user1 将完美启动。但是,这会破坏我试图执行的操作。
这是一个无法启动的 cgconfig 示例。
CentOS 版本 6.5(最终版本)2.6.32-431.5.1.el6.x86_64 libcgroup-0.40.rc1-5.el6_5.1.x86_64 在 VM 内部。
mount {
cpuset = /cgroup/cpuset;
cpu = /cgroup/cpu;
cpuacct = /cgroup/cpuacct;
memory = /cgroup/memory;
devices = /cgroup/devices;
freezer = /cgroup/freezer;
net_cls = /cgroup/net_cls;
blkio = /cgroup/blkio;
}
group normal {
blkio {
blkio.throttle.write_bps_device="253:0 72428800";
blkio.throttle.read_bps_device="253:0 72428800";
blkio.reset_stats="";
blkio.weight="700";
blkio.weight_device="";
}
memory {
memory.limit_in_bytes = "1673003008";
memory.memsw.limit_in_bytes="1673003008";
}
cpuset {
cpuset.mems = "0";
cpuset.cpus = "0-2";
}
}
group abusers {
cpu {}
blkio {}
memory {
memory.limit_in_bytes = "38442369024";
memory.memsw.limit_in_bytes="81203822592";
}
cpuset {
cpuset.mems = "0";
cpuset.cpus = "3";
}
}
group abusers/user1 {
cpu {
cpu.shares = 200;
cpu.cfs_quota_us = 10000;
cpu.cfs_period_us = 100000;
}
blkio {
blkio.throttle.write_bps_device="253:2 10485760";
blkio.throttle.read_bps_device="253:2 10485760";
blkio.reset_stats="";
blkio.weight="100";
blkio.weight_device="";
}
memory {
memory.limit_in_bytes = "1024M";
memory.memsw.limit_in_bytes="1280M";
}
}
答案1
253:0 处是什么设备?我猜想该特定设备对非 root 用户没有 rw 权限。因此,要么您尝试限制的设备不合适,要么您需要为非 root 用户设置该设备的 rw 权限。