环境如下:
d@develop:~$ cat /sys/fs/cgroup/user.slice/user-$(id -u).slice/cpuset.cpus.effective
0-15
d@develop:~$
d@develop:~$ cat /sys/fs/cgroup/custom.slice/cpuset.cpus.effective
16-19
d@develop:~$
当前用户的 cgroup 的 cpuset 是 0-15 ,自定义的 custom.slice 这个 cgroup 的 cpuset 是 16-19 ,我希望 podman 在 custom.slice 这个 cgroup 中运行,试了下面这种方法不管用:
systemd-run --slice=custom.slice --scope podman start f42
有没有 v 友能指导一下要怎么实现?
1
abbottcn 11 小时 7 分钟前 via iPhone
可能不相关,仅供参考。
高性能计算中,使用 slurm 等调度器,管制资源分派。slurm cgroup 其他层面不懂。 |
![]() |
2
webcape233 8 小时 31 分钟前 via iPhone
我估计是你运行这条命令并不能管到容器,slice 只能控制这个进程及其子进程吧。 试试 podman run --cgroup-parent
|
3
wniming OP @webcape233
podman run --cgroup-parent 不管用,比如创建一个当前用户的自定义 slice: d@develop:~$ cat .config/systemd/user/test123.slice [Slice] AllowedCPUs=16-19 # test123.slice 的 cpuset 不在当前用户的 cpuset 的范围内 d@develop:~$ 然后 d@develop:~$ podman run --cgroup-parent=test123.slice --rm -it f42_0:latest root@fd4bb672e93d:/# nproc 16 root@fd4bb672e93d:/# 可以看到在 podman 内有 16 个 cpu (也就是当前用户的那 16 个 cpu ),如果自定义的 slice 的 cpuset 在当前用户的 cpuset 的范围内的话是有效的,比如: d@develop:~$ cat .config/systemd/user/test123.slice [Slice] AllowedCPUs=14,15 d@develop:~$ podman run --cgroup-parent=test123.slice --rm -it f42_0:latest root@6388921a756f:/# nproc 2 root@6388921a756f:/# |