自动停止与自动销毁
有两道余额阈值会对你的实例触发自动操作。第一道保护你的钱。第二道删掉你的数据。
| 余额 | 会发生什么 | 你的磁盘 |
|---|---|---|
| 到 $0 | 组织内每个处于 running 的实例都会被停止,已停止实例的 GPU 会在机器支持的情况下被释放 | 保留,并且照样计费 |
| 在 $0 或以下已持续 24 小时,并且已到 −$5 或更低 | 每个已停止或出错的实例都会被销毁 | 永久删除 |
运行中的实例永远不会被直接销毁:到 $0 时它会被停止,之后只有已停止的实例才可能被自动销毁。组织上有未结的付款争议时,什么都不会被销毁。
一旦执行,没有快照,没有回收站,也没有任何办法把里面的内容找回来。这 24 小时是给你充值用的宽限期,不是备份。让余额保持在零以上,一旦变负就立刻充值。
余额究竟怎么会变成负数
费用是在用量发生之后才结算的,大约每分钟一次。因此在余额越过零点之后、结算任务发现并停止它之前,一个运行中的实例最多还能再吃掉大约一分钟的 GPU 时长。
从那时起,往下掉就靠存储推动了。不管还有没有余额来付,已停止的实例都会继续为它们的磁盘计费,所以余额归零并不会冻住计量表——它会继续朝 −$5 掉下去。
$0 时:自动停止
当结算任务发现某个组织的余额为零或更低时:
- 每个处于
running状态的实例都会被停止。容器关掉,磁盘保留,但和你自己的停止不同,这次停止会在机器支持的情况下把 GPU 释放回机器:既然没人为它们付钱,其他租户就可以使用它们。 - 原本就已停止的实例——包括你自己停止、GPU 一直为你保留的那些——其 GPU 也会以同样的方式被释放。
- GPU 费用结束。存储费用继续,按磁盘容量乘以每 GB 每小时的存储费率计。
- 被释放的实例会把容器和磁盘留在机器上,充值之后可以再次启动——但只能用同样的 GPU。如果那时另一位租户正在使用其中任何一块,启动会以
409 CAPACITY_UNAVAILABLE被拒绝,实例连同磁盘保持停止。参见停止与销毁。 - 在无法释放 GPU 的机器上,或者实例运行的是
vm模板时,GPU 会像你自己停止之后一样继续为实例保留,实例仍然只收取存储费。 - 在你充值之前,部署新实例和启动一个已停止的实例都会以
INSUFFICIENT_BALANCE失败——而且充值后的余额必须够支付组织届时所运行的一切一小时的费用,光是回到零以上是不够的。 - 这个操作会记进组织的用量日志:运行中的实例记为
instance.auto_stopped,已停止的实例记为instance.auto_released;控制台的用量页面分别显示为 自动停止(余额) 和 自动释放 GPU。 - 自动销毁的 24 小时计时开始。
正处在中间过渡状态的实例——creating、starting——在那一刻不会被动;等它们进入 running,后面某一次结算任务会停掉它们。
充值之后没有任何东西会自己重启。被自动停止的实例会一直停着,直到你从控制台或 API 把它们启动起来;被释放的 GPU 也不会被重新保留:下一次启动会重新取回它们,前提是它们仍然空闲。
支付争议未结期间
一笔正式的支付争议会冻结组织的付款,在它结束之前,启动已停止的实例会以 402 PAYMENTS_FROZEN 被拒绝。为无法启动的实例保留 GPU 毫无意义,所以在付款被冻结期间:
- 已停止实例的 GPU 会在下一次结算任务中被释放,即使余额为正也一样,前提是机器支持;
- 你按下的停止会在机器支持的情况下立刻释放 GPU——控制台的停止对话框会在你确认之前说明这一点——而且 API 在该组织每个实例上的
stop_releases_gpus都为true; - 冻结本身不会停止任何运行中的实例:它们继续运行并计费,上面的零余额规则仍然适用于它们;
- 争议未结期间不会自动销毁任何东西。
争议结束后,这些实例就是普通的已释放停止:只要同样的 GPU 空闲,启动就能成功。什么会冻结和解冻一个组织,参见交易记录与花费。
24 小时之后、到 −$5 时:自动销毁
只有以下三条同时成立时,自动销毁才会执行:
- 余额在 −$5 或更低;
- 余额已经在 $0 或以下连续停留了至少 24 小时,中间没有回到零以上;
- 组织上没有未结的付款争议。
这时它会销毁组织内每一个 stopped 和 error 实例。对每一个:
- 容器和磁盘都被移除。那块磁盘上的一切都被删掉,且是永久的。
- 拆除完成后,GPU 位置会被放回市场,可以被别人租走。
- 该实例的所有费用结束。
- 这个操作会以
instance.auto_destroyed记进用量日志。
仍在运行的实例会被停止,而不是被销毁;等它们变成 stopped 之后,下一次结算任务才可能销毁它们。正处在中间过渡状态的实例,会等它们稳定下来之后,由后面某一次结算任务收拾。
已被销毁的实例,事后充值也救不回来。之后添加的余额只对新的活有效。
充值能拦下这两种操作
每次结算任务在对某个实例动手之前,都会重新读一遍余额。如果你的付款先落地,强制这一步就会被跳过,什么都不会被停止或销毁。余额在付款确认后立刻到账。把余额拉回零以上的充值也会重置那 24 小时计时:如果之后余额再次变负,宽限期会重新开始。
让余额仍停在零或以下的充值不会重置计时,它只是让余额在 −$5 之上多撑一段时间。
怎样才永远碰不到第二道阈值
干完的东西就销毁掉。 一个你已经没打算再用的停止实例就是一台计债的钟。把需要的东西从上面拷走,然后销毁它。参见 停止与销毁。
走人之前先把存储的账算一遍。 用磁盘容量乘以存储费率得到一个每小时的数字,再算出你的余额能撑多久。按存储每 GB 每小时 $0.0002 计算:
| 磁盘 | 停止期间的费用 | 从 $0 到 −$5 的时间 | 多久后被销毁 |
|---|---|---|---|
| 200 GB | $0.04/小时 | 约 5 天 | 约 5 天 |
| 500 GB | $0.10/小时 | 约 2 天 | 约 2 天 |
| 1,000 GB | $0.20/小时 | 约 1 天 | 约 1 天 |
| 2,000 GB | $0.40/小时 | 约 12 小时 | 24 小时 |
自动销毁会等到两者中较晚的那一个:在零或以下满 24 小时,或者余额到达 −$5。这个窗口是一天到几天,不是一个月。一个长周末就足够让你丢掉一块大磁盘。
按活儿的需要定磁盘大小。 顺手开出来的 2,000 GB 磁盘,停着不用的成本是 200 GB 的十倍,半天就能跌到 −$5——你和磁盘被删之间,只剩下那 24 小时的宽限期。
盯住余额标签。 控制台顶栏里的余额大约每分钟刷新一次,一旦掉到 $5 以下就会变色。把它当成该充值的信号,而不是一条可以搁着不管的提醒。
休假前留出缓冲。 如果没人会盯着这个账户,要么销毁你的实例,要么留下足够覆盖它们整段时间存储费用的余额,还要留有富余。