无法初始化NVML:几小时后Docker中出现未知错误

dluptydi  于 2022-09-19  发布在  Docker
关注(0)|答案(2)|浏览(1529)

我有一个既有趣又奇怪的问题。

当我用GPU启动停靠容器时,它工作正常,我看到所有的GPU都在停靠中。然而,几个小时或几天后,我不能在Dock中使用GPU。

当我在对接机中做nvidia-smi时。我看到了这条消息
“无法初始化NVML:未知错误”

然而,在主机中,我看到了所有带有NVIDIA-SMI的GPU。另外,当我重新启动扩展底座机器时。它完全正常工作,并显示所有的图形处理器。

我的推理Docker机器应该一直处于打开状态,并根据服务器请求进行推理。有没有人有同样的问题或解决这个问题的办法?

wxclj1h5

wxclj1h51#

我也犯了同样的错误。我尝试了一下码头的健康检查,作为一种临时解决方案。当nVIDIA-SMI失败时,容器将被标记为不健康,并在willfarrell/autoheal之前重启。

Docker-Compose版本:

services:
  gpu_container:
    ...
    healthcheck:
      test: ["CMD-SHELL", "test -s `which nvidia-smi` && nvidia-smi || exit 1"]
      start_period: 1s
      interval: 20s
      timeout: 5s
      retries: 2
    labels:
      - autoheal=true
      - autoheal.stop.timeout=1
    restart: always
  autoheal:
    image: willfarrell/autoheal
    environment:
      - AUTOHEAL_CONTAINER_LABEL=all
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    restart: always

Dockerfile版本:

HEALTHCHECK 
    --label autoheal=true 
    --label autoheal.stop.timeout=1 
    --start-period=60s 
    --interval=20s 
    --timeout=10s   
    --retries=2 
    CMD nvidia-smi || exit 1

使用自动修复后台进程:

docker run -d 
    --name autoheal 
    --restart=always 
    -e AUTOHEAL_CONTAINER_LABEL=all 
    -v /var/run/docker.sock:/var/run/docker.sock 
    willfarrell/autoheal
ego6inou

ego6inou2#

我遇到了同样的问题,我只是在容器中运行screen watch -n 1 nvidia-smi,现在它连续工作。

相关问题