您不能以普通用户身份执行此操作.但您可以将root用户设置为cgroup,并使其可由用户配置.
如果您还没有安装默认的cgroups控制器,例如systemd:
$sudo mount -t tmpfs cgroup_root /sys/fs/cgroup
$sudo mkdir /sys/fs/cgroup/cpuset
$sudo mount -t cgroup -o cpuset cpuset /sys/fs/cgroup/cpuset
创建一个cgroup:
$sudo mkdir /sys/fs/cgroup/cpuset/${USER}
$sudo chown -R ${USER} /sys/fs/cgroup/cpuset/${USER}
您现在可以将普通用户的cgroup配置修改为:
$echo 0-3 > /sys/fs/cgroup/cpuset/${USER}/cpuset.cpus
向该组添加进程:
$./my_task &
$echo $! > /sys/fs/cgroup/cpuset/${USER}/tasks
或者创建一个子组:
$mkdir /sys/fs/cgroup/cpuset/${USER}/subgroup
$echo 0-1 > /sys/fs/cgroup/cpuset/${USER}/subgroup/cpuset.cpus
$./my_other_task &
$echo $! > /sys/fs/cgroup/cpuset/${USER}/subgroup/tasks