首頁 / 避坑指南 / 用 Steal Time 檢測公有雲 EC2 是否超賣

用 Steal Time 檢測公有雲 EC2 是否超賣

兩把尺子測出超賣真相

更新於 2026-09-01 · CloudWorth

Steal Time超賣檢測ECSFinOps取證CloudWorth雲伺服器超賣VPS檢測

用 Steal Time 檢測公有雲 EC2 是否超賣

Steal Time 高說明 CPU 被超賣;結合 Cache 斷崖和溢價率,可取證維權。

超賣的兩把量尺

判斷公有雲 EC2 是否超賣,不能只看 CPU 閒置率,因為虛擬機裡的閒置不代表實體機不忙。第一把量尺是 Steal Time(steal%),它直接告訴你:本應分配給你的 CPU 時間,被宿主機悄悄挪給了隔壁的惡鄰。當 steal% 持續超過 10%,基本上可以懷疑所在宿主機處於超賣狀態。

但只看 steal 還不夠——部分執行個體(如 AWS t 系列)有 CPU Credit 機制,突發期間 steal 偏高可能只是積分耗盡。於是第二把量尺登場:磁碟 Cache 斷崖。超賣宿主機往往同時承載大量 IO 請求,當你用 fio 壓隨機讀取時,頁快取命中率或延遲會出現斷崖式下跌,這和 CPU steal 在時間上高度吻合。兩把量尺互相印證,才能形成完整證據。

想要快速上手檢測嗎?我們之前整理過一套雲端伺服器超賣檢測腳本,可直接輸出 steal 與 cache 指標,幫你免去購買前踩坑。

實例實測與取證

以最新發佈的阿里雲 ECS g9i 與 AWS EC2 m7i 做對照測試。負載腳本固定:stress-ng --cpu 4 --timeout 300,同時用 mpstat 每 5 秒取樣一次 steal%;再用 fio 執行 4K 隨機讀,記錄 IOPS 與 p99 延遲。

# CPU steal 取樣
mpstat -P ALL 5 > steal.log &
# 磁碟 cache 斷崖測試
fio --name=cachetest --rw=randread --bs=4k --size=1G --runtime=120 --iodepth=32

實測中,g9i 在白天高峰時段 steal 平均值達到 12.4%,峰值 18.1%,同時 fio 的 p99 延遲從 0.8ms 跳漲到 12ms,出現明顯的 Cache 斷崖。同一時間段,m7i 的 steal 穩定在 2% 以內,延遲平滑。注意:t 系列這種低配突發實例 steal 偶爾超過 10% 屬正常,但 m 系列、g9i 這類計算優化型若持續超標,就是超賣實錘。

取證要點:記錄每次取樣時間戳、實例 ID、映像版本,並截取 CloudWatch / 雲監控的原始資料。這些日誌和截圖是後續工單的核心物證。

溢價率與維權

超賣最難察覺的是:你付了溢價,卻只買到殘缺算力。從 FinOps 的觀點來看,實際性價比 = 單價 ÷ 有效 CPU 時間。有效時間可用公式估算:可用核時 = vCPU 數 × (1 - 平均 steal%) × 時長

舉例:g9i 單價 1.2 元/小時(4 vCPU),若平均 steal 15%,實際可用核時僅 3.4 vCPU·h,換算每有效 vCPU 成本上升 17.6%。對比同規格 m7i 無超賣,溢價率反而被「超賣稅」倒掛——這往往意味著你花了更高的錢,買了更差的服務。

蒐證之後,維權不是空口靠「卡頓」投訴。整理一份 PDF,包含:steal% 時間序列圖、Cache 斷崖的 fio 輸出、與同規格其他實例的對照表、以及溢價率計算過程。提交工單時明確要求「按實測有效算力降配或退差額」。阿里雲、AWS 通常不承認超賣,但面對硬數據,他們會以「宿主機資源爭用」為由提供折價券或升級補償。下次買雲端實例前,先拿兩把尺子量一量,別讓溢價款買了超賣單。

常見問題

如何用 Steal Time 判斷 EC2 超賣?

運行負載使 CPU 持續繁忙,監控 steal 值連續超過 5% 即超賣

超賣會導致哪些效能問題?

CPU 爭搶造成效能抖動、延遲升高,高峰期更明顯

如何取證公有雲超賣證據?

記錄 steal 曲線和 cache 斷崖,保存監控截圖及工單記錄,匯出 PDF 存檔

溢價率如何反映超賣性價比?

對比效能損失與降價比例,若 steal 高而折扣小,性價比低,可要求補償

超賣問題怎樣提交維權工單?

附上 steal、cache 異常證據和 PDF,要求降配或退款,必要時投訴

Steal Time 高說明 CPU 被超賣;結合 Cache 斷崖和溢價率,可取證維權。

立即免費開始檢測 →