跳到主要内容

算力容器 FAQ(常见问题解答)

Jupyter 执行过程中报错 Kernel Restarting 是怎么回事?

当 Jupyter Notebook 中的内核(Kernel)崩溃、停止或出现错误时,Jupyter Notebook 会自动尝试重新启动内核。在这个过程中,笔记本中所有的变量和数据都将被清除并且需要重新运行。原因可能包括代码错误、内存问题、资源限制或其他系统问题,建议您检查代码中的语法错误和逻辑错误,并确保内存使用不会超过可用容量。如果问题持续存在,可以尝试使用更高版本的 Python 或者升级相关依赖库等操作解决。

如何找到执行程序的路径?

可以通过 which 命令来查找:

which darknet

返回结果:

/usr/local/bin/darknet

如果文件在非标准路径,可以通过 find 命令查找:

find / -name program

更详细的使用说明请参阅 man whichman find

为何工作空间中的 Terminal 终端无法退出 Vim 的编辑模式?

根据用户反馈,如果您在工作空间的 Terminal 终端中使用 Vim 编辑文件时,如果遇到无法退出编辑模式等非常规行为(主要表现为进入插入模式 i 后按 esc - :wq 无法退出当前模式),建议检查 Google Chrome 浏览器中是否有安装并激活 Vimium、cVim 等 Vim 相关插件/扩展。此类插件的某些设置极有可能与工作空间中的 Terminal 快捷键冲突。

建议:禁用相关插件/扩展,或更换为其他浏览器使用

为什么通过容器的「继续执行」启动后发现原来的内容不见了?

为什么要有执行记录 这里介绍了每次容器的执行都是独立的环境,而 从指定执行记录继续执行 解释了「继续执行」做了什么:将上一次执行的输入绑定到新的执行的 /openbayes/home 目录下。而「上一次执行」值得就是用户点击「继续执行」的那个执行了,如果这次执行没有任何的输出内容,那么新的执行内必然也没有相应的数据了。这种情况可能是因为点击「继续执行」的执行本身是没有开启就关闭了,而再上一个容器则是有实际数据的。

例如我创建了一个新的容器 cifar10 并且创建了一个执行:第一次执行,以 Jupyter 工作空间的形式打开了,我写了一个 .ipynb 文件后就关闭了。 一个小时后我点击「第一次执行」的「继续执行」打开这个容器,在这次执行处于「准备中」的状态时我发现我的算力类型选错了,我立即点击了关闭,这个时候我的容器中有了第二次执行。 然后我又在「第二次执行」的页面点击了「继续执行」,当容器开启之后发现我的 /openbayes/home 目录是空的。那是因为第二次执行是异常关闭的,根本没有机会去同步第一次执行的内容,因此正确的做法是在「第一次执行」处点击「继续执行」开启容器

为什么再次开启容器我原来安装的内容就没有了?

为什么要有执行记录 这里介绍了每次容器的执行都是独立的环境,原来手工安装的依赖包会消失。如果希望每次开启容器都有相关的依赖的话,参考 如何添加不在列表中的依赖 。同时,我们也会周期性更新镜像,把越来越多通用的依赖添加进来。

为什么我的容器一直处于「准备中」的状态?

容器启动长时间处于准备中的状态可能有以下可能:

  1. 将大量的文件绑定到了 /openbayes/home 容器在启动阶段拷贝大量的数据到 /openbayes/home 耗费时间,尤其是大量的小文件的拷贝可能会非常的耗时,同时在具体的执行的页面也会看到现实「数据同步」并展示当前数据同步的速度。如果对相应的数据没有写的需求,建议创建为数据集并绑定到 /intput0-4 以避免拷贝的过程,在 Gear 的工作目录 - 将工作目录创建为数据仓库版本 可以看到如何从容器的「工作目录」创建新的数据集版本。
  2. 容器处于冷启动状态,启动容器的机器目前没有容器所需要的镜像,正在拉取镜像。虽然我们已经在集群内增加了镜像节点提升镜像获取的时间,但是在这种冷启动状态依然会有 3 - 5 分钟的时间耗费在镜像拉取上,同时在具体的执行页面也会看到这个执行处于「拉去镜像」的状态。
  3. 网络问题,由于内部网络抖动导致容器的创建过程出现问题,如果排除了以上两种可能(即自己没有加载大量数据到 /openbayes/home 但是过了 5 分钟 10 分钟容器还没启动起来),那么可以尝试重启容器或者在界面的聊天窗口咨询客服人员。

为什么我的容器一直处于「同步数据并关闭」的状态?

这种情况通常和容器打开缓慢是同样的原因,就是将大量的文件绑定到了 /openbayes/home,当容器在关闭时需要同步大量的数据。大量的数据同步,尤其是大量小文件的同步非常耗时,如果对相应的数据没有写的需求,建议创建为数据集并绑定到 /intput0-4 以避免拷贝的过程。

Gear 的工作目录 - 将工作目录创建为数据仓库版本 可以看到如何从容器的「工作目录」创建新的数据集版本。

如果容器内文件不多依然出现了这种情况,那么请在界面的聊天窗口咨询客服人员。

如何上传、查看、预览 .ipynb 文件?

您可以通过两种方式上传:

在算力容器模式中,您可以创建一个新的算力容器,接入方式选择 工作空间 ,然后在容器启动完成后打开工作空间,在工作空间中上传 .ipynb 文件

如果是在预训练模型中,您可以在上传的时候直接将 .ipynb 打包到 Zip 文件中并上传,上传完成后在预训练模型的文件列表中即可访问该 notebook,稍后您也可以通过创建新的容器并绑定该预训练模型,在工作空间中进行交互操作

容器中的存储空间和从「资源使用状况」中看到的空间怎么不一样,他们是什么关系?

容器中的存储空间是开启一个容器后对应的「工作目录」(/openbayes/home 目录)工作空间大小,对于特定的算力资源其空间是固定的,例如「T4」类型的算力资源其工作空间是 50GB。而「资源使用状况」中反应的是用户全局存储空间。容器的存储空间是在用户开启容器的时候所使用的,容器在关闭后其「工作目录」(/openbayes/home 目录)中的数据会被同步到用户全局存储空间并占据相应的额度;另一方面,用户上传数据集也是直接计算在用户全局存储空间额度中。

当用户的全局存储空间超出限额后,用户将不再能够创建容器、上传数据集,可以通过删除执行、删除数据集等方式释放空间。

为什么我的容器卡死了,甚至连 Jupyter 工作空间的页面也打不开?

容器的计算资源(CPU、GPU、内存)都是固定的。如果有程序占满了 CPU 资源,那会导致其他的进程受到严重的影响。比如有些程序会一口气占满所有的 CPU 资源,那么 Jupyter 工作空间自身程序就会变得非常卡顿,甚至导致 Jupyter 工作空间的页面也无法打开。所以如果发现自己的 Jupyter 工作空间页面无法打开,首先检查一下容器的 CPU 是不是在满负荷运行(在容器页面会展示 CPU、内存等重要指标)。

如果容器非常卡顿甚至无法打开 Jupyter 工作空间页面,可以尝试采用 SSH 的方式登录容器。如果依然无法登录,则可以尝试重启容器。

为什么我的「工作空间」没有自动关闭?

「工作空间」自动关闭需要满足两个条件:

  1. Jupyter 页面被关闭
  2. CPU 使用率持续接近于 0

注意,如果 Jupyter 的页面在浏览器中并没有关闭,会被系统认为「工作空间」依然是在被使用的,不会触发空闲关闭的。