有一个来自 Red Hat 的 cgroups 指南,它可能有点帮助(但没有回答这个问题)。
我知道如何在启动该进程的命令期间通过以下方式将特定进程限制为特定 CPU:
首先,将以下*放入/etc/cgconfig.conf:
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 cpu0only {
cpuset {
cpuset.cpus = 0;
cpuset.mems = 0;
}
}
Run Code Online (Sandbox Code Playgroud)
然后启动一个进程并使用以下命令将其专门分配给该 cgroup:
cgexec -g cpuset:cpu0only myprocessname
Run Code Online (Sandbox Code Playgroud)
我可以通过以下方式自动限制特定进程名称的所有实例(我认为这是正确的)/etc/cgrules.conf:
# user:process controller destination
*:myprocessname cpuset cpu0only
Run Code Online (Sandbox Code Playgroud)
我的问题是:我怎样才能做相反的事情?
换句话说,如何将除一组特定的白名单进程及其子进程之外的所有进程分配给受限制的 …