GenStudio 推出 Infini 编码套餐(Coding Plan)GenStudio 推出 Infini 编码套餐(Coding Plan) ,接入多家顶尖厂商的主流编程模型了解更多
Skip to content

开发机常见问题排查指南

以下是使用智算云平台开发机时可能遇到的常见问题及解决方案。

创建与配置问题

开发机创建失败

可能原因

  • 资源不足导致任务排队,排队超时后仍无法获得资源。
  • 网络连接异常。
  • 系统内部错误。

解决方案

  1. 排队超时问题,可稍后重试。
  2. 更换资源池,重新创建开发机。
    • 如使用包年包月资源,可在选择资源池后查看「占用情况」与「负载排队情况」,帮助您选择合适的资源池。
    • 如使用弹性资源,可在选择负载规格时刷新库存状态。
  3. 如持续失败,请联系技术支持。

注意

什么是占用情况负载排队情况

在 AI/ML 工作负载中,GPU 资源的分配通常具有特定的需求。例如:某些工作负载要求在一组节点上运行,每节点必须提供 8 个空闲 GPU,而非在多个节点上分散的 GPU 资源。智算云平台的占用情况视图提供资源池各个节点 GPU 占用的实时视图,而工作负载优先级调度功能支持允许查看当前工作负载排队等待资源的情况,超级管理员通过拖拽高优先级负载至优先调度队列,可确保关键任务优先获得 GPU 资源。详见查看资源使用与排队情况

如何变更开发机配置?

解决方案

  • 使用「改配」功能调整 CPU、GPU、内存、容器镜像等配置。详见变更开发机配置
  • 改配后开发机会经历:
    1. 清理中状态(系统盘数据可选择保留或清理)
    2. 重新部署流程
  • 云盘(/datadisk)为扩充存储,其数据不受影响。
  • 高性能共享存储为扩充存储,其数据不受影响。改配开发机时,用户可新增、修改高性能存储相关配置,例如修改指定存储卷在开发机内的挂载路径(请谨慎修改已有挂载点)、新增存储卷等。

登录与连接问题

无法通过 SSH 连接开发机

可能原因

  • 开发机未处于「运行中」状态。
  • SSH 端口或 IP 地址错误。
  • SSH 密钥或密码配置错误。
  • 本地网络限制(公司、学校的防火墙限制,或本地安全软件)。
  • 开发机使用的镜像缺少必要基础组件,常见报错:"您的镜像中缺少 openssh-server,您正在连接到一个功能受限的 SSH 服务器,无法用作端口转发/scp 文件传输等用途,仅可用于 SSH 命令行和 sftp 文件传输"。

解决方案

  1. 确认开发机状态为「运行中」。
  2. 从开发机详情页复制正确 SSH 命令(含端口)。
  3. 检查认证方式:
    • 密码认证:确认密码正确
    • 密钥认证:确认 SSH 公钥已添加。建议使用平台的密钥管理功能,统一为开发机注入 SSH 公钥。
  4. 检查网络连通性:nc -vz <开发机IP> <SSH端口>
  5. 使用详细日志排查:ssh -vv -p <端口> root@<开发机IP>
  6. 如果错误消息提示缺少 openssh-server 或其他组件,请安装平台要求的镜像基础组件:
    • 在开发机中直接安装基础组件,重启开发机(仅针对当前开发机作一次性修复)
    • 在镜像中安装,重启开发机,选择更新后的新版镜像(永久修复自定义镜像,推荐) 详见镜像基础组件要求,或更换为其他符合要求的镜像。

忘记 SSH 登录密码

解决方案

  • 创建者可在详情页点击「修改密码」重置。
  • 密码修改后立即生效,无需重启。

SSH 密码认证失败次数过多被锁定

问题:错误密码输入 3 次后,10 分钟内无法使用密码登录。

解决方案

  • 等待 10 分钟后重试。
  • 或通过 Web Terminal 登录,添加 SSH 公钥使用密钥认证。
  • 使用平台的密钥管理功能,统一为开发机注入 SSH 公钥(重启后生效)。

SSH 连接不稳定或终端任务中断

问题:进行模型训练等长时间任务时,SSH 连接可能会因网络波动或本地电脑休眠而断开,导致正在运行的终端任务(如训练脚本)意外终止。

解决方案

使用终端复用工具(如 tmux)来保持会话持久化。即使 SSH 连接断开,tmux 会话中的进程仍在后台继续运行,重新连接后可恢复之前的终端状态。

存储与文件传输问题

系统盘空间不足

问题:开发机系统盘占用率过高将发出警告。系统盘占用超过 100GiB 时,开发机将进入安全模式,此时仅能保证 Web Terminal 可连接。

解决方案

  • 清理无用文件:sudo apt-get cleanrm -rf ~/.cache/*
  • (如有云盘)迁移大文件至云盘:mv <大文件> /datadisk/
  • (如有共享存储)迁移大文件至共享存储:mv <大文件> /mnt/public/

清理后请重启开发机。

注意

可改配开发机,扩容云盘。如需购买共享存储,可自助购买,或联系商务和售后服务。

运行与性能问题

开发机性能不足

解决方案

  • 通过「改配」升级到 GPU、CPU、内存更高的算力规格。详见变更开发机配置
  • 优化流程:
    • 监控 GPU:nvidia-smi
    • 分析占用:htop

taskset 报错或绑核不生效

现象

  • 使用 taskset -c 指定的 CPU 与容器可用集合(/etc/environment 中的 MIZAR_CPUSET)无交集时,命令会失败(常见报错:Invalid argument)。
  • -c 中仅部分 CPU 在可用集合内时,进程可启动,但只会在与开发机容器 cpuset 的交集上运行,超出集合的 CPU 会被忽略,表现为部分绑定生效。

解决方案

  1. 读取实例可用集合。

    shell
    cat /etc/environment | grep MIZAR_CPUSET
  2. 仅在该集合内选择 CPU 后再运行 taskset,例如:

    shell
    taskset -c 0-7,64-69 <command>
  3. 校验绑定结果。

    shell
    pidof <command> | xargs -I {} taskset -p {}
    pidof <command> | xargs -I {} grep Cpus_allowed_list /proc/{}/status

提示

详见资源与事件监控中的「查看实例可用 CPU(MIZAR_CPUSET)」与「使用 taskset 绑核」。

/proc/cpuinfo 的 processor 与 cpuset 不一致

原因:容器中 processor 编号由 lxcfs 顺序映射生成,用于兼容性,不是宿主机真实 CPU id,且不代表容器真实可用的 cpuset。

正确做法

  • 绑核与亲和性请以 MIZAR_CPUSET(及 MIZAR_CPUSET_NUMA_*)为准。
  • /proc/cpuinfoprocessor 值不要用于绑核。

提示

如需理解 CPU 使用率与核集合的关系,参见「资源与事件监控」。

开发机突然无法访问

可能原因

  • (如使用弹性资源)账户余额不足导致停机
  • 网络连接问题

解决方案

  1. 检查余额并充值
  2. 在控制台查看开发机状态
  3. 如已停机,重新启动

开发机异常重启了,数据现在没有了怎么办?

可能原因

  • 宿主机故障触发自动迁移。
  • 实例恢复后,数据备份卷未能自动挂载。

解决方案

开发机的异常重启通常由宿主机故障触发,系统会自动将实例迁移至健康的宿主机恢复运行。若您在实例恢复后发现数据缺失,多数情况下是由于备份未能自动挂载至新实例所致,数据本身并未丢失。

您可通过提交工单申请售后支持,并提供以下信息以便快速定位与恢复:

  • 开发机实例信息
  • 租户 ID
  • 可用区

环境与软件问题

无法通过 Pip 下载 Pytorch

在国内访问官方的 PyTorch 下载链接可能会遇到速度慢或无法访问的问题。为了解决这一问题,可以使用国内的镜像源来安装 PyTorch。

阿里云提供了 PyTorch 的镜像源,可以通过以下命令进行安装。

shell
pip3 install torch==2.4.1 torchvision torchaudio -f https://mirrors.aliyun.com/pytorch-wheels/cu121/

提示

注意使用 -f 选项,而不是使用 --index-url

没有 CUDA 环境,没有 nvcc

可能原因

  • 如使用 NGC 镜像,可能是环境变量问题。开发机在 Web Terminal 与本地 SSH 连接中环境 PATH 环境变量可能有差异,导致无法找到 CUDA。
  • 镜像中已安装 Pytorch,但不含系统级 CUDA。

解决方案

可参考以下教程:

Vulkan 找不到 GPU(仅识别到 llvmpipe / CPU)

当您运行依赖 Vulkan 的应用(例如 OmniGibson、NVIDIA Isaac Sim / Isaac Lab 相关组件)时,如果应用提示找不到 GPU,通常表现为 Vulkan 只能识别到 CPU 软件渲染(llvmpipe)。

诊断流程

1. 现象确认

  • 应用报错:no Vulkan deviceVK_ERROR_INCOMPATIBLE_DRIVERfailed to find suitable GPU
  • vulkaninfo --summaryDevices 段落显示:
    • deviceType = PHYSICAL_DEVICE_TYPE_CPU
    • deviceName = llvmpipe (LLVM ...)

2. 检查 GPU 与驱动

首先确认 GPU 设备已挂载且驱动正常:

shell
nvidia-smi -L
ls -la /dev/nvidia* 2>/dev/null || true

如果 nvidia-smi 不可用,请先联系技术支持解决 GPU 挂载问题。

3. 检查 NVIDIA ICD 文件配置

Vulkan Loader 依赖 ICD (Installable Client Driver) 文件来加载 NVIDIA 驱动。

shell
ls -la /etc/vulkan/icd.d/ 2>/dev/null || true
ls -la /usr/share/vulkan/icd.d/ 2>/dev/null || true

原因与修复方案

在平台容器中,Vulkan 无法识别 GPU 的最常见原因是:ICD 配置文件指向了缺少依赖的驱动库

常见场景:Headless 容器 vs 桌面依赖

平台提供的容器镜像通常是**无头(Headless)**环境,不包含 X11 图形界面库。

  • 问题库:libGLX_nvidia.so.0
    • 这是常见的默认配置。
    • 它依赖 X11 库(如 libX11)。在纯命令行容器中,这些依赖往往缺失,导致 Vulkan Loader 加载失败,从而回退到 llvmpipe
  • 推荐库:libEGL_nvidia.so.0
    • 它通常不依赖 X11,更适合在无头容器中运行 Vulkan 计算任务。

请根据您的需求选择一种修复方案:

方案 A:切换到 EGL 模式(推荐,适用于 Headless 容器)

如果您不需要运行图形界面(XFCE4/桌面),建议强制 Vulkan 使用 libEGL

您可以通过设置环境变量 VK_ICD_FILENAMES 来临时覆盖 ICD 配置,而无需修改系统文件:

  1. 创建 EGL 专用的 ICD 文件

    shell
    cat > /tmp/nvidia_icd_egl.json <<'EOF'
    {
      "file_format_version": "1.0.0",
      "ICD": {
        "library_path": "libEGL_nvidia.so.0",
        "api_version": "1.3.0"
      }
    }
    EOF
  2. 验证修复

    shell
    VK_ICD_FILENAMES=/tmp/nvidia_icd_egl.json vulkaninfo --summary

    如果现在能看到 NVIDIA GPU(deviceType = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU),说明修复成功。您可以在运行应用时加上这个环境变量。

方案 B:补齐 X11 依赖(适用于需要桌面的场景)

如果您确实需要运行图形界面或必须使用 GLX 库,则需要安装缺失的 X11 依赖。

我们提供了一份完整的桌面环境安装与排障指南,请参考:

4. 避免重复 ICD

请检查 /etc/vulkan/icd.d/ 下是否同时存在多个 NVIDIA ICD 文件(例如 nvidia_icd.json 和用户自己创建的 my_icd.json)。重复文件会导致 Vulkan 枚举出重复的 GPU 设备,甚至引发应用崩溃。请保持目录下只有一个有效的 NVIDIA ICD 文件。

无法使用 Conda 命令

可能原因

  • Conda 未初始化
  • 环境变量未配置

解决方案

开发机在 Web Terminal 与本地 SSH 连接中环境 PATH 环境变量可能有差异,导致无法找到 conda。

请按照开发机 Conda 文档指引使用。

无法激活 Conda 环境

问题conda activate base 提示需先运行 conda init

解决方案

需要根据当前镜像环境,选择合适的方式初始化 Conda。详见 Conda 环境初始化指南

如何保存开发机环境和数据?

平台为所有开发机系统盘提供 100 GiB 的免费持久化存储空间。如果持久化存储空间不足,可购买云盘或高性能共享存储作为扩充存储

使用建议

平台支持多种持久化存储,合理规划数据存储位置能够提升开发效率:

  • 代码仓库:使用 Git 管理代码是最佳实践。将代码托管至 GitHub、GitLab 等平台,通过版本控制保证代码安全与协作效率。

  • 数据文件(数据集、模型、Checkpoint)

    • 优先存储至云盘/datadisk)或共享高性能存储(如 /mnt/public),这些扩充存储提供更大容量和更好的 I/O 性能。
    • 系统盘(rootfs,挂载在 /)虽支持持久化,但容量限制为 100 GiB,建议仅存放环境配置和小型文件。
  • 软件环境与依赖:使用容器镜像保存软件环境是更可靠的方案。可前往镜像中心,将当前运行中的开发机保存为自定义镜像(保存镜像时请避免在开发机中频繁读写)。相比在单个开发机系统盘上手动安装依赖,使用容器镜像能够:

    • 确保环境一致性和可复现性
    • 快速部署到新开发机或任务实例
    • 避免因改配时选择「保留系统盘数据」为「否」而导致环境丢失

警告

开发机在改配时可选择将系统盘(rootfs)恢复为干净状态。若您依赖系统盘存储关键数据或环境配置,请务必在改配前备份,或使用上述推荐的持久化方案。

如何科学上网?

解决方案

智算云平台不提供科学上网方式。您可以自行寻找第三方代理服务或其他解决方案。以下仅介绍部分可选方案:

Huggingface

在中国大陆地区可以使用 Huggingface 镜像站 https://hf-mirror.com。在开发机(或 AICoder) 中下载模型时,可以使用以下工具:

  • huggingface-cli

    shell
    pip install -U huggingface_hub
    # 设置环境变量
    export HF_ENDPOINT=https://hf-mirror.com
    # 建议通过环境变量 HF_HUB_CACHE 修改 Huggingface 缓存路径为非开发机系统盘,比如云盘或共享存储
    export HF_HUB_CACHE=/mnt/public/models # 请注意开发机是否已挂载了共享存储
    #export HF_HUB_CACHE=/datadisk/models # 请注意开发机是否已挂载了云盘
    # 下载模型
    huggingface-cli download --resume-download gpt2 --local-dir gpt2
    # 下载数据集
    huggingface-cli download --repo-type dataset --resume-download wikitext --local-dir wikitext
  • hfd.sh 脚本

    shell
    # 下载脚本
    wget https://hf-mirror.com/hfd/hfd.sh
    chmod a+x hfd.sh
    # 设置环境变量
    export HF_ENDPOINT=https://hf-mirror.com
    # 下载模型
    ./hfd.sh gpt2
    # 下载数据集
    ./hfd.sh wikitext --dataset

更多详细用法请访问 如何快速下载 huggingface 模型——全方法总结

GitHub

在中国大陆地区可以使用第三方 GitHub 加速服务。

获取 https 仓库地址后,添加加速服务前缀,发起 git clone:

shell
git clone https://ghfast.top/https://github.com/redis/redis

注意

以上加速服务的域名有可能因被封失效,您可以访问 https://ghproxy.link/ 获取最新可用域名。

可参考以下教程:

应用问题

无法安装 Ollama

可能原因

  • 由于 Ollama 官方安装脚本下载会从 ollama.com 重定向到 GitHub,在国内网络环境下可能无法访问。

解决方案

ModelScope 提供了 Ollama 的国内镜像,下载后无需网络即可完成安装,是最稳定可靠的安装方式。

  1. 安装依赖工具:

    shell
    sudo apt update && sudo apt install -y pciutils lshw zstd
  2. 安装 ModelScope CLI 并下载 Ollama 安装包:

    shell
    pip install modelscope -U
    modelscope download --model=modelscope/ollama-linux --local_dir ./ollama-linux --revision v0.14.1
  3. 运行安装脚本:

    shell
    cd ollama-linux
    chmod +x ollama-modelscope-install.sh
    ./ollama-modelscope-install.sh

安装完成后,即可使用 ollama 命令。

提示

  • 智算云平台开发机不支持通过 systemd 添加为启动服务。
  • ModelScope 提供多个 Ollama 版本(如 v0.14.1v0.13.0 等),可通过 --revision 参数切换。版本可能略滞后于官方最新版,但通常保持较新。更多信息请访问 ModelScope Ollama 仓库

Web 应用预览无法访问

可能原因

  • 应用未监听配置端口
  • 未绑定 0.0.0.0

解决方案

  1. 确认端口一致(2000-65000)
  2. 确保绑定 0.0.0.0 而非 127.0.0.1
  3. 检查运行状态:netstat -tulpn | grep <端口号>
  4. 本地验证:curl localhost:<应用端口>

详见预览开发机上运行的 Web 应用

Docker 相关问题

无法使用 Docker 命令

可能原因

  • 未启用 Docker 功能
  • 未启用 Docker Engine 服务

解决方案

  1. 通过「改配」查看是否已启用 Docker 容器功能。如果未开启,则需要开启 Docker 容器,并确认改配(开发机会重启)。
  2. 通过执行 dockerctl status 查看 Docker Engine 是否运行。如果未运行,则执行 dockerctl restart

无法通过 docker system prune 删除开发机内 Docker 容器与镜像

可能原因

  • Docker 容器功能不支持通过 docker system prune 清除内部的 Docker 容器与镜像。

解决方案

如果要在开机状态下清除容器和镜像,必须使用专用的 dockerctl 命令行工具。请依次执行以下命令:

shell
dockerctl stop
dockerctl prune
dockerctl start

其他问题

如何在 VS Code 中远程连接开发机?

通过 VS Code 的 Remote - SSH 扩展连接开发机,可获得完整的智能感知、代码导航、断点调试等功能,实现几乎本地般的开发体验。

解决方案

  1. 安装 Remote - SSH 扩展
  2. 配置 SSH(端口和认证方式)
  3. 连接后直接编辑开发机文件
  4. 详细配置步骤和高级功能(如代理设置、手动安装 VS Code Server 等)请参考 VS Code 远程开发
可参考以下教程:

如何在开发机中安装和使用 Jupyter Lab ?

如果需要远程连接到开发机中的 Jupyter Lab,可以使用以下方案。

解决方案

  1. 安装 Jupyter Lab

    • 使用 pip:python3 -m pip install jupyterlab
    • 使用 conda:先初始化环境,创建虚拟环境,然后安装
  2. 启动 Jupyter Lab

    bash
    jupyter lab --no-browser --ip 0.0.0.0 --port=9999 --allow-root
  3. 访问方式

    • Web 应用预览:配置开发机预览端口,启动时绑定 0.0.0.0
    • SSH 端口转发:在本地配置端口转发访问远程 Jupyter Lab
    • VS Code 集成:通过 Remote Kernel 在本地使用远程 GPU
详细教程: