V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
wniming
V2EX  ›  Linux

普通用户如何在自定义的根 cgroup 中运行 podman?

  •  
  •   wniming · 9 小时 57 分钟前 · 393 次点击

    环境如下:

    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 友能指导一下要怎么实现?

    3 条回复    2025-09-13 23:04:45 +08:00
    abbottcn
        1
    abbottcn  
       7 小时 58 分钟前 via iPhone
    可能不相关,仅供参考。

    高性能计算中,使用 slurm 等调度器,管制资源分派。slurm cgroup
    其他层面不懂。
    webcape233
        2
    webcape233  
       5 小时 22 分钟前 via iPhone
    我估计是你运行这条命令并不能管到容器,slice 只能控制这个进程及其子进程吧。 试试 podman run --cgroup-parent
    wniming
        3
    wniming  
    OP
       4 小时 55 分钟前
    @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:/#
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   934 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 20:00 · PVG 04:00 · LAX 13:00 · JFK 16:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.