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

Ubuntu 22.04下如何配置containerd-shim-runc-v2不占用GPU内存?

解决containerd-shim-runc-v2禁用GPU访问的方法

针对你遇到的Ubuntu 22.04环境下containerd-shim-runc-v2关联GPU导致系统崩溃的问题,可通过以下步骤配置使其完全不使用GPU:

1. 修改containerd核心配置,禁用默认GPU暴露

编辑containerd的主配置文件/etc/containerd/config.toml:

  • 定位到[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]区块,确保没有添加任何与NVIDIA GPU相关的额外配置(比如将runtime_type指向nvidia runtime,或在options中挂载GPU设备)。
  • 若之前配置过NVIDIA容器运行时,将其从默认runtime中移除,确保默认使用标准runc runtime。
  • 添加cgroup限制规则,明确禁用GPU资源:
    [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
      SystemdCgroup = true
      [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options.Cgroup]
        # 限制GPU内存为0,完全禁用GPU访问
        Memory = 0
        # 禁止所有设备访问,或可明确排除GPU设备
        Devices = ["!/*"]
    

2. 容器启动时强制禁用GPU访问

由于你的containerd使用moby命名空间(对应Docker环境),启动容器时需明确禁止GPU授权:

  • 使用Docker命令启动容器时,不要添加--gpus参数,或直接指定--gpus=0:
    docker run --gpus=0 [你的容器镜像]
    
  • 若通过Docker Compose部署,在compose文件中移除所有deploy.resources.reservations.devices相关的GPU配置,或明确设置GPU数量为0:
    services:
      your-service:
        image: your-image
        deploy:
          resources:
            reservations:
              devices:
                - driver: nvidia
                  count: 0
                  capabilities: [gpu]
    

3. 用cgroup直接限制containerd-shim-runc-v2进程的GPU权限

如果上述配置未生效,可通过cgroup强制限制shim进程的GPU访问(以cgroup v1为例):

  1. 创建专门的cgroup组:
    mkdir -p /sys/fs/cgroup/gpu/no-gpu
    # 设置GPU内存限制为0
    echo 0 > /sys/fs/cgroup/gpu/no-gpu/gpu.memory_limit_in_bytes
    # 禁止GPU设备访问
    echo 'c 195:* rmw' > /sys/fs/cgroup/gpu/no-gpu/devices.deny
    
  2. 修改containerd配置,让shim进程加入该cgroup:
    在/etc/containerd/config.toml中添加:
    [plugins."io.containerd.grpc.v1.cri".containerd]
      shim_cgroup = "/gpu/no-gpu"
    
  3. 重启containerd服务生效:
    systemctl restart containerd
    

4. 验证配置效果

  • 启动新容器后,进入容器执行nvidia-smi,若提示"command not found"或无法识别GPU,说明配置生效。
  • 查看containerd-shim-runc-v2进程的cgroup归属:
    cat /proc/$(pidof containerd-shim-runc-v2)/cgroup
    
    确认其路径包含你创建的no-gpu组。

内容的提问来源于stack exchange,提问作者Tal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 21:13:21