You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04系统下基于cgroup v2为用户账户配置CPU使用率限制的方法咨询

Ubuntu 22.04系统下基于cgroup v2为用户账户配置CPU使用率限制的方法咨询

嗨,我来帮你搞定Ubuntu 22.04 cgroup v2环境下的用户CPU限制配置——毕竟和CentOS 7的cgroup v1玩法确实不一样,咱们一步步来:

首先先确认你的系统确实是cgroup v2环境,执行这条命令验证:

stat -fc %T /sys/fs/cgroup/

如果输出是cgroup2fs,那就没问题,可以继续往下走。

临时配置(重启后失效,适合测试)

这种方式快速生效,用来验证配置逻辑很合适:

  • 创建专属cgroup目录:分别为用户A和B创建对应的cgroup节点
    sudo mkdir -p /sys/fs/cgroup/userA
    sudo mkdir -p /sys/fs/cgroup/userB
    
  • 设置CPU使用率限制:cgroup v2用cpu.max文件来控制,格式是[最大占用值] [周期],默认周期是100000微秒(0.1秒)。100%CPU对应100000,200%对应200000
    # 给用户A限制100%CPU
    echo "100000 100000" | sudo tee /sys/fs/cgroup/userA/cpu.max
    # 给用户B限制200%CPU
    echo "200000 100000" | sudo tee /sys/fs/cgroup/userB/cpu.max
    
  • 将现有进程移入cgroup:把用户当前运行的所有进程放到对应的cgroup里
    # 用户A的进程移入userA cgroup
    sudo pgrep -u userA | sudo tee /sys/fs/cgroup/userA/cgroup.procs
    # 用户B的进程移入userB cgroup
    sudo pgrep -u userB | sudo tee /sys/fs/cgroup/userB/cgroup.procs
    
    不过这种方式只能处理现有进程,用户后续新开的进程不会自动进入cgroup,适合临时测试用。

永久配置(开机生效,生产环境推荐)

Ubuntu 22.04用systemd管理cgroup v2,所以用systemd切片(slice)的方式最规范,能让用户所有进程(包括后续启动的)自动受限制:

  • 创建systemd切片文件:
    为用户A创建切片配置:
    sudo nano /etc/systemd/system/userA.slice
    
    写入以下内容:
    [Unit]
    Description=CPU限制切片 - 用户A
    
    [Slice]
    CPUQuota=100%
    
    为用户B创建切片配置:
    sudo nano /etc/systemd/system/userB.slice
    
    写入以下内容:
    [Unit]
    Description=CPU限制切片 - 用户B
    
    [Slice]
    CPUQuota=200%
    
  • 让用户会话默认使用切片:
    编辑用户A的bash配置文件,让其登录后自动使用userA.slice:
    nano ~userA/.bashrc
    
    在末尾添加:
    export SYSTEMD_SLICE=userA.slice
    
    用户B同理:
    nano ~userB/.bashrc
    
    添加:
    export SYSTEMD_SLICE=userB.slice
    
  • 重载配置并生效:
    sudo systemctl daemon-reload
    
    让用户重新登录,之后该用户启动的所有进程都会自动进入对应的切片,CPU限制会一直生效,哪怕重启系统也没问题。

验证配置是否生效

可以用systemd-cgtop命令查看各个cgroup的CPU使用情况,或者直接查看cgroup的配置文件:

# 查看用户A的CPU限制
cat /sys/fs/cgroup/user.slice/userA.slice/cpu.max
# 查看用户B的CPU限制
cat /sys/fs/cgroup/user.slice/userB.slice/cpu.max

备注:内容来源于stack exchange,提问作者15051810258139com

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 11:38:05