自动停止与自动销毁
有两道余额阈值会对你的实例触发自动操作。第一道保护你的钱。第二道删掉你的数据。
| 余额 | 会发生什么 | 你的磁盘 |
|---|---|---|
| 到 ¥0 | 组织内每个处于 running 的实例都会被停止;在机器支持的地方,GPU 会被释放 | 保留,并且照样计费 |
| 在 ¥0 或以下持续 24 小时,并且到 −¥35 或更低 | 每个已停止或出错的实例都会被销毁 | 永久删除 |
运行中的实例永远不会被直接销毁:到 ¥0 时它会被停止,之后只有已停止的实例才可能被自动销毁。
一旦执行,没有快照,没有回收站,也没有任何办法把磁盘里的内容找回来。这 24 小时是留给你充值的宽限期,不是备份。让余额保持在零以上,一旦变负就立刻充值。
余额究竟怎么会变成负数
费用是在用量发生之后才结算的,大约每分钟一次。因此在余额越过零点之后、结算任务发现并停止它之前,一个运行中的实例最多还能再吃掉大约一分钟的 GPU 时长。
从那时起,往下掉就靠存储推动了。不管还有没有余额来付,已停止的实例都会继续为它们的磁盘计费,所以余额归零并不会冻住计量表——它会继续朝 −¥35 掉下去。
¥0 时:自动停止
当结算任务发现某个组织的余额为零或更低时:
- 每个处于
running状态的实例都会被停止:容器关掉,磁盘保留。和你自己停止不同,在机器支持的地方,这次停止会把 GPU 释放回市场。 - 已停止、而 GPU 仍为你保留的实例(你自己停止的那些),在机器支持的地方也会释放 GPU。这个操作以
instance.auto_released记进用量日志,显示为自动释放 GPU。 - GPU 费用结束。存储费用继续,按磁盘容量乘以每 GB 每小时的存储费率计。
- 部署新实例和启动一个已停止的实例都会以
INSUFFICIENT_BALANCE失败,直到你充值——而且充值后的余额要够组织届时要跑的一切跑一小时,不只是回到零以上。 - 这个操作会以
instance.auto_stopped记进组织的用量日志。 - 自动销毁的 24 小时计时从这里开始。
正处在中间过渡状态的实例——creating、starting——在那一刻不会被动;等它们进入 running,后面某一次结算任务会停掉它们。
充值之后没有任何东西会自己重启。被自动停止的实例会一直停着,直到你从控制台或 API 把它们启动起来。
GPU 被释放之后
磁盘仍然留在原来那台机器上,停止期间照样按存储计费。实例页面显示「GPU 已释放」。之后启动要拿回同一台机器上原来那几块 GPU。它们空闲时,实例照常启动;正被别人使用,或者在那台机器上已停止服务时,启动会失败,有两种表现。要么请求本身以 409 CAPACITY_UNAVAILABLE 失败,控制台提示「此实例使用的 GPU 目前正被他人使用,无法启动。实例仍处于已停止状态,磁盘完好——请稍后再试。」要么平台先接受了启动、机器随后才拒绝:实例先进入 starting,再回到 stopped,实例页面在上一个操作没有完成下显示 gpus_unavailable 的解释。
无论哪种,实例都保持停止、磁盘完好,但在启动成功之前,谁也拿不到磁盘上的数据:SSH 和 JupyterLab 都要实例在运行。请稍后再启动。只有不再需要这些数据时才销毁它,因为销毁会删除磁盘;如果启动一直不成功,销毁后重新部署是唯一的出路。想留一份数据,就要在余额用完之前、实例还在运行时把它拷走,参见停止与销毁。
GPU 并不总能释放:虚拟机(vm 启动模式)的实例从不释放;机器还不支持释放,或者这台机器上 GPU 已释放的实例已经太多时,也不释放。这时 GPU 继续为你保留,和你自己停止一样,停止期间只收存储费。用量日志里的自动释放 GPU记录的是平台的这次尝试;只要余额还不够,平台每 6 小时会再试一次,每次再记一条。
24 小时后、到 −¥35 时:自动销毁
只有下面两条同时满足,自动销毁才会执行:
- 余额在 −¥35 或以下;
- 余额已经连续 24 小时处在 ¥0 或以下,中间没有回到过零以上。
这时它会销毁组织内每个 stopped 和 error 状态的实例。对每一个:
- 容器和磁盘都被移除。那块磁盘上的一切都被删掉,且是永久的。
- 拆除完成后,GPU 位置会被放回市场,可以被别人租走。
- 该实例的所有费用结束。
- 这个操作会以
instance.auto_destroyed记进用量日志。
还在运行的实例会被停止,而不是被销毁;等它们变成 stopped,下一次结算任务才可能销毁它们。正处在中间过渡状态的实例,会等它们稳定下来之后,由后面某一次结算任务收拾。
已被销毁的实例,事后充值也救不回来。之后添加的余额只对新的活有效。
充值能拦下这两种操作
每次结算任务在对某个实例动手之前,都会重新读一遍余额。如果你的付款先落地,强制这一步就会被跳过,什么都不会被停止或销毁。余额在支付方确认付款后立刻到账。把余额充回零以上还会重置 24 小时的计时:如果之后余额再次变负,宽限期会重新开始。
充值后余额仍在 ¥0 或以下时,计时不会重置,只是让余额离 −¥35 更远一些。
怎样才永远碰不到第二道阈值
干完的东西就销毁掉。 一个你已经没打算再用的停止实例就是一台计债的钟。把需要的东西从上面拷走,然后销毁它。参见 停止与销毁。
走人之前先把存储的账算一遍。 用磁盘容量乘以报价上显示的存储单价,得到停止期间每小时的费用;再用 ¥35 除以它,就是余额从 ¥0 掉到 −¥35 要多少小时:
小时数 = ¥35 ÷(磁盘 GB × 每 GB 每小时存储单价)
下表按每 GB 每小时 ¥0.002 的示例单价计算,你的实际单价以报价为准:
| 磁盘 | 停止期间的费用(示例) | 从 ¥0 到 −¥35 的时间(示例) | 被销毁的时间(示例) |
|---|---|---|---|
| 200 GB | ¥0.40/小时 | 约 87 小时,3 天多 | 约 87 小时 |
| 500 GB | ¥1.00/小时 | 35 小时,约 1.5 天 | 35 小时 |
| 1,000 GB | ¥2.00/小时 | 17.5 小时,不到 1 天 | 24 小时 |
| 2,000 GB | ¥4.00/小时 | 不到 9 小时 | 24 小时 |
自动销毁会等两者中较晚的那个:在 ¥0 或以下满 24 小时,或者余额到 −¥35。按这个示例单价,窗口是一到几天,不是一个月。一个长周末就足够让你丢掉一块大磁盘。
按活儿的需要定磁盘大小。 顺手开出来的 2,000 GB 磁盘,停着不用的成本是 200 GB 的十倍;按同一个示例单价,不到 9 小时就会跌到 −¥35,此后你和它被删除之间只剩那 24 小时的宽限期。
盯住余额标签。 控制台顶栏里的余额大约每分钟刷新一次,一旦低于 ¥35 就会变成琥珀色。把它当成该充值的信号,而不是一条可以搁着不管的提醒。
休假前留出缓冲。 如果没人会盯着这个账户,要么销毁你的实例,要么留下足够覆盖它们整段时间存储费用的余额,还要留有富余。