Skip to content

使用 Spot 资源创建开发机

使用 Spot 资源创建开发机时,平台使用闲置库存提供按量计费 GPU 算力。库存充足时,开发机可以获取资源并运行;库存不足或运行中资源被抢占时,开发机可能被中断回收,并可通过自动排队重新等待资源。

如果还不确定应选择包年包月、共享、弹性还是 Spot 资源,请先查看创建开发机

提示

Spot 资源类型需要申请开通。如需使用 Spot 资源,请咨询商务或售后。

警告

Spot 资源可能因库存不足被中断回收。请不要将 Spot 资源用于不能接受中断的生产关键流程;使用前请确认代码、模型文件、日志、输出结果和其他重要数据已经保存到可持久化的位置。

开始前确认适用场景

Spot 资源适合短期实验、临时调试、可重新启动的开发环境,以及可以接受中断的探索性工作。创建前建议确认:

  • 可中断性:运行中的终端进程、Notebook 内存状态和临时服务不应视为可恢复;开发机重新获取资源后,通常需要重新登录并重新启动进程。
  • 数据保存:代码、Notebook、模型文件、输出结果和脚本配置应保存到系统盘、共享高性能存储、云盘或代码仓库等可持久化位置。
  • 库存与费用:确认目标 GPU 型号、GPU 数量、可用区、库存和单价符合预期。页面显示的价格以控制台和费用中心为准。
  • 自动排队策略:如果希望开发机在库存不足或被抢占后自动等待资源,提前决定单次可等待多久、最多允许重新排队几次。

创建开发机

本节说明如何选择一组可用 Spot 库存,配置开发环境和自动排队规则,并创建一台可接受中断的开发机。

以下步骤为完整创建流程。

Step 0 选择 Spot 资源和规格

在资源规格区域,先选择 Spot 资源,再刷新库存并选择算力规格。规格表中的每一行代表一组 GPU 型号、GPU 数量、vCPU、内存、训练网配置、可用区、当前库存和单价。

如果页面中没有 Spot 资源选项,通常表示当前租户或账号尚未开通 Spot 资源类型。

选择规格时,重点确认以下信息:

  • 库存:库存会随平台闲置资源变化;如果目标规格无可用库存,可刷新库存、改选可用区或改选其他 GPU 规格。
  • 可用区:后续要挂载公共数据、共享高性能存储或云盘时,需确认存储和数据在同一可用区可用。
  • 单价和余额:Spot 资源按量计费。创建前确认账户余额、预算和预期运行时长。
  • 训练网配置:多卡调试或通信验证场景下,确认训练网配置符合需求。

Step 1 配置自动排队

创建 Spot 工作负载时,需要配置是否开启自动排队。自动排队默认关闭;开启后,可用资源不足时工作负载会自动进入队列等待资源,运行中工作负载被抢占后也可按规则重新排队。

  • 单次最大排队时长:每次进入队列后可等待的最长时间,取值范围为 1-12 小时,需填写整数。重新排队后从 0 重新计时。
  • 最大重新排队次数:因资源不足或工作负载被抢占导致重新排队时,最多允许再次进入队列的次数,取值范围为 0-3 次,需填写整数。设置为 0 表示不允许再次重新排队。

提示

排队时长不按重新排队次数叠加计算;每次排队单独计时。任一规则达到上限后,系统停止自动排队,工作负载进入异常状态,需要人工处理。部分详情页可能将“最大重新排队次数”显示为“最大重试次数”,两者对应同一项配置。

对开发机来说,自动排队只负责重新等待并获取算力资源。开发机重新进入运行状态后,用户需要重新登录;被中断前正在运行的交互式进程、终端任务和 Notebook 内存状态不会自动恢复。

使用启动命令自动拉起可恢复进程

自动排队不保证开发机在多长时间内恢复到运行中。如果开发机被中断,平台会在规则允许范围内继续等待可用 Spot 库存;重新获取资源后,开发机会再次启动,但交互式 Shell、Notebook 内核、内存变量和临时服务不会自动恢复。

如果开发机中运行的是无人值守的长时间进程,可以配合 启动命令,让开发机每次启动后自动拉起一个可恢复脚本。例如:

language-bash
/bin/bash -lc "mkdir -p /mnt/public/spot-dev/logs && nohup flock -n /tmp/spot-dev-worker.lock bash /mnt/public/spot-dev/run_worker.sh >> /mnt/public/spot-dev/logs/worker.log 2>&1 &"

使用这种方式前,请先确认:

  • 代码、checkpoint、日志和输出结果已经保存到系统盘、共享高性能存储、云盘或代码仓库等可持久化位置。
  • 依赖已经预装到镜像中,启动命令不要执行 pip install、下载模型、编译扩展或其他耗时不可预测的操作。
  • 启动命令只做轻量检查和后台拉起脚本,并在 3 分钟内退出。详见启动命令
  • 启动脚本能判断是否已有相同进程,或使用 flock 等方式避免开发机重启后重复拉起多个相同进程。
  • 需要排查启动命令是否执行时,查看 /var/log/user_command 目录下的日志。

警告

该方式只适合可中断、可重启、能从持久化状态继续的进程。它不能恢复正在交互使用的终端会话、Notebook 内核、内存变量或临时服务。

Step 2 配置开发环境

基础配置 区域,按实际登录和运行方式配置以下字段:

  1. 镜像 选择平台预置镜像,或选择租户已有自定义镜像。详见使用镜像
  2. 如需本地 SSH 登录,先在「SSH 公钥管理」中添加公钥,再回到创建页选择公钥。详见SSH 公钥管理
  3. 只有在需要密码认证时,才开启「SSH 登录密码」。
  4. 需要在开发机内执行 docker pulldocker run 等命令时,再开启「Docker 容器」。详见Docker 功能
  5. 启动命令 只放轻量初始化命令,避免下载大模型、长时间编译或启动不可中断任务。详见启动命令

Step 3 配置存储

Spot 开发机可能被中断回收。创建前应把需要保留的数据放到可持久化位置,并避免只保存在运行中进程或临时目录中。

  1. 系统盘 固定 100GiB,挂载在 /,支持持久化保存。详见系统盘
  2. 如创建页显示 云盘 配置,按页面提示选择 新建云盘已有云盘,并设置容量、规格和容器内访问路径。选择 新建云盘 会在创建开发机时同步购买并创建一块新的独立计费云盘;选择 已有云盘 仅建立挂载关系,不会新购云盘。详见云盘
  3. 如需使用平台公共模型或数据集,勾选 公共数据;挂载后在 /infini-data/ 只读访问。详见公共数据
  4. 如需跨开发机、任务或推理服务共享数据,选择「共享高性能存储」,再选择文件系统、存储卷、挂载路径和挂载权限。详见共享高性能存储

警告

选择 新建云盘 不是只添加挂载配置,而是购买并创建新的云盘资源。云盘创建和计费不依赖开发机进入运行中状态;即使开发机仍处于排队中、部署中或创建失败,只要云盘已创建成功,就可能开始产生存储费用。如果开发机因资源不足长时间停留在排队中,新建云盘可能保持 挂载中 并暂时无法挂载、卸载或删除,但仍可能继续按小时计费;不再等待该开发机启动时,请先删除对应开发机,再检查云盘状态并按需删除云盘。提交前请核对云盘规格、容量、价格预览、账户余额,并确认是否确实需要新购云盘。

Step 4 填写基本信息并创建

基本信息 区域填写名称、描述和标签后,点击 确认创建。名称用于识别开发机,标签用于后续筛选和资源管理;建议按团队、项目或成本归属提前约定标签键和值。详见标签管理

查看部署和中断后的状态

开发机创建后,回到开发机列表核对以下信息:

  • 状态:是否进入排队中、部署中、运行中、已关机或异常状态。自动排队达到上限后,开发机会进入异常状态,需要人工处理。
  • 规格:GPU、vCPU 和内存是否符合所选 Spot 算力规格。
  • 资源池:是否显示对应 Spot 资源来源或可用区信息。
  • ssh登录:是否生成预期 SSH 登录地址。
  • 镜像:是否为创建时选择的镜像。
  • 云盘状态:是否符合创建时选择的云盘配置。如果创建时选择了 新建云盘,请确认云盘是否已创建成功;云盘可能先于开发机进入可用状态并开始计费。如果开发机长时间处于排队中,而云盘显示为 挂载中,说明云盘可能正在等待开发机创建流程完成,此时部分云盘操作可能受限。如果不再继续等待,请删除对应开发机,并在删除后检查云盘是否仍需保留。

开发机进入运行中后,可点击 登录 打开 Web Terminal,也可以复制 SSH 登录地址进行远程登录。

如需及时了解 Spot 开发机被回收后进入排队、重新运行或进入异常状态,建议按需配置飞书机器人告警通知。常用触发条件包括开发机进入排队中开发机进入运行中开发机发生异常。收到开发机进入运行中通知后,用户仍需要重新登录并重新启动终端进程、Notebook 内核或开发服务。

常见问题

Spot 开发机被中断后,会自动恢复终端进程吗?

不会。自动排队只负责重新等待并获取算力资源。开发机重新运行后,用户需要重新登录并重新启动终端进程、Notebook 内核或开发服务。请把重要代码、Notebook 和输出文件保存到可持久化位置。

自动排队达到上限后会怎样?

任一规则达到上限后,系统停止自动排队,开发机进入异常状态。此时需要人工处理,例如调整规格、重新创建、等待库存恢复,或改用其他资源类型。