“按秒计费”是那种听起来很完整、其实并不完整的说法。它背后有好几个会影响你实际付费的决定:计量的是什么、计时何时开始和结束、有没有最低计费、不足一美分的零头怎么处理,以及钱到底什么时候从余额里扣走。
这篇文章把我们对代码沙箱的答案连同算术一起写下来。目标是:在运行任何东西之前,你就能把账单预测到美分;同时能看出按秒计费在什么时候并不适合你的工作负载。
计费单位:预留的 vCPU 和内存
沙箱的价格就是其套餐所预留资源的价格:
- 每 vCPU 每小时 $0.040
- 每 GiB 内存每小时 $0.013
因此 small 套餐(0.5 vCPU、1 GB)每小时费用为 0.5 × 0.040 + 1 × 0.013 = $0.033,约合每秒 $0.0000092。最大的 max 套餐(8 vCPU、16 GB)每小时 $0.528。
我们计量的是预留量,而不是消耗量。一个等待下一条命令的沙箱,每秒费用与正在编译项目的沙箱相同。按实际 CPU 计量在纸面上看似更公平,但那样就无法提前知道价格,而且无论如何这些容量都是为你保留的。出站流量不计费。
计时:从创建到删除
临时沙箱从创建那一刻起计费,直到被删除。这也包括它在空闲超时将其移除之前处于空闲状态的时间,默认 300 秒。
大多数意外都来自这里。一个运行两分钟的脚本,如果所在的沙箱没人删除,会按七分钟计费:两分钟干活,五分钟等超时。解决办法很无聊:用完就删除沙箱(SDK 的 with 代码块会替你完成),或者调低空闲超时。
最低计费:每个沙箱 60 秒
每个临时沙箱至少按其生命周期中的 60 秒计费。启动 microVM、挂载磁盘和网络、再把这些全部拆掉,不论里面的代码运行 1 秒还是 50 秒,成本都一样。
| 存活时间 | 套餐 | 计费时长 | 费用 |
|---|---|---|---|
| 20 秒 | small | 60 秒 | $0.00055 |
| 61 秒 | small | 61 秒 | $0.00056 |
| 10 分钟 | small | 600 秒 | $0.0055 |
| 3 小时 | standard | 10,800 秒 | $0.198 |
最低计费只在沙箱结束时应用一次,而且仅当其总存活时间短于 60 秒时才生效。没有额外的按小时或按命令的最低计费。
累计与扣款:微美元和整美分
这是“按秒”通常不会告诉你的部分。沙箱主机按小时区间记录用量,每个沙箱一个区间。计费任务每分钟运行一次,收集已关闭的区间、计价并从余额中扣款。
计价以百万分之一美元为单位,扣款以整美分为单位。不足一美分的余数留在你的账户里,计入下一次扣款;无论按沙箱还是按小时,都不会向上取整。
在小规模时这一点很重要。一百个 20 秒的沙箱累计 100 × $0.00055 = $0.055。你被扣五美分,剩下半美分等下一批。如果每个沙箱都向上取整到一美分,同样的工作就要一美元。
还有两个值得了解的特性:
- 每个区间只扣一次费。 用量记录和扣款写在同一个数据库事务中,以沙箱和小时为键。重试或确认丢失都不会导致重复扣款。
- 故障只会延迟扣费,不会丢失或重复。 如果计费端无法连接沙箱主机,就不会确认任何内容,区间会等待,连接恢复后再扣费。
由此带来的结果是,控制面板上的数字可能比实时数字滞后最多一小时。要看实时数字,GET /sandboxes/{id}/usage 会返回该沙箱目前的 billed_usd 和 estimated_total_usd。
Persistent 沙箱:按开始的小时计费,有上限
Persistent 沙箱在会话之间保留磁盘,最长 30 天。它们按开始的小时计费:61 分钟算两小时。作为交换,一个自然月(UTC)的费用永远不会超过 730 小时减 25%。
对 standard 套餐来说,这个上限是每月 $36.14,而不是 $48.18。Persistent 沙箱处于暂停状态时完全不计费。
余额用完时
余额永远不会变成负数。新的沙箱会以 402 insufficient_balance 被拒绝。已经在运行的临时沙箱会在空闲超时或 TTL 到期时结束。Persistent 沙箱在 24 小时内未充值会被暂停,充值后自动恢复。暂停快照保留 14 天。 之后沙箱被删除,其 id 返回 410 sandbox_deleted。
如果有 AI 智能体替你创建沙箱,请设置每日和每月上限。达到上限时会返回 429 budget_exceeded 以及重置时间,程序可以据此采取行动。
按秒计费在哪里吃亏
按秒计费非常适合以秒和分钟计的工作。工作运行得越久,它就越不划算。
| 工作负载 | 按秒计费沙箱 | 替代方案 |
|---|---|---|
| 2 分钟的测试 | $0.0011(small) | 按小时计费的机器会收整整一小时 |
| 3 小时的批处理任务 | $0.198(standard) | 差不多 |
| 7×24 运行的服务 | $36.14/月(standard,persistent 上限) | AI agent VPS:4 vCPU、4 GB,$10/月 |
临界点大致在工作负载每天运行超过几个小时的地方。超过这个点,你就是在为用不上的灵活性付费,而按月租用的服务器每小时要便宜得多。看待按秒计费的公平方式,是把它当作“不必规划容量”的价格,而不是折扣。
快速估算方法
套餐每小时价格 × 沙箱存在的秒数 ÷ 3600,最低按 60 秒计。如果你不会自己删除,再加上空闲超时。对于 persistent 沙箱,把每次会话向上取整到整小时,并以每月上限封顶。
全部规则、配额和预算 API 见沙箱限制与计费;上文用到的调用见 SDK 参考。如果你想知道按秒租用的到底是什么,通俗讲解 Firecracker microVM 会给出答案;AI 智能体真正需要什么样的基础设施则说明了当创建机器的是软件而不是人时,计费模式为何如此重要。
评论
暂无评论。来做第一个吧。