本文汇总了容器实例的常见问题及解决方法。

Q1:执行程序时,提示显存不足(CUDA OOM)的原因及解决方法

  • 情况一:执行程序直接报错,提示 OOM 显存不足

    最简单的调试办法是设置 batch size=1 然后逐步增大,观察跑到多大 bs 时 OOM,以此为依据再决定更换为多卡或选择更大显存的单卡。

  • 情况二:程序第一运行时并未出现 OOM 报错,但再次运行提示 OOM

    1. 先使用 nvidia-smi 命令确认在未跑时显存占用。

    2. 若没有显存占用,那么说明程序的特性就这样,比如动态深度学习框架的显存是会发生变化的,正好在计算过程中对显存的需求超出上限。

    3. 若有占用那么说明有之前跑的残留进程需要清理掉。

      1. 查看进程 PID。

        ps -ef
      2. 根据上一步产出的 PID 值,执行如下命令,清理进程。

        kill -9 <PID>

Q2:容器实例更换镜像后 VSCode、SSH 等无法链接,应该如何解决?

用户删除本地 known_hosts 文件后重试。

删除 know_hosts 文件操作:

  • Linux/Mac 系统

    rm ~/.ssh/known_hosts
  • Windows 系统

    直接删除 C:/Users/当前user名字/.ssh/konwn_hosts 文件即可。

Q3:已经释放的容器实例,还能找回其内数据吗?

不能找回。

Q4:如果容器实例所在的主机出现硬盘、GPU 等故障,怎么办?

有两个选择:迁移实例到其他主机或等待机器维修重新上线。

针对该情况平台将会做出相应的赔偿。

Q5:容器实例上的数据会意外损坏或丢失吗?

容器实例中的本地数据盘,使用的大部分为物理磁盘,无冗余备份。因此,存储在本地磁盘的数据可能存在丢失的可能性,用户需及时把重要的数据进行备份。

对于存储于共享云盘的数据,具备多副本冗余,数据可靠性高。

Q6:容器实例的系统盘空间不足怎么办?

  1. 打开容器实例的 web 连接。

  2. 执行如下命令,查看各文件夹大小。比如下方的 .bashrc.profile 文件的大小,但此时看到的文件夹大小仅仅是文件夹本身大小,并非文件夹下所有文件的大小。

    ll -alh
    faq k8s instance 1
  3. 执行如下命令,统计文件夹下所有文件的大小。

    du -sh <path_name>

    命令行示例:

    du -sh .bashrc
  4. 若空间不足,用户可申请修改显存大小,为 batch size 留出足够空间。