「按秒計費」是那種聽起來很完整、其實並不完整的說法。它背後有好幾個會影響您實際付費的決定:計量的是什麼、計時何時開始和結束、有沒有最低計費、不足一美分的零頭怎麼處理,以及錢到底什麼時候從餘額里扣走。
這篇文章把我們對程式碼沙箱的答案連同算術一起寫下來。目標是:在執行任何東西之前,您就能把帳單預測到美分;同時能看出按秒計費在什麼時候並不適合您的工作負載。
計費單位:預留的 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 代理真正需要什麼樣的基礎設施則說明了當建立機器的是軟體而不是人時,計費模式為何如此重要。
評論
目前還沒有評論。歡迎成為第一位。