本參考文獻詳述 Azure 儲存體 的可擴展性與效能目標。 這裡列出的可擴展性和效能目標屬於高階目標,但確實是可以達成的。 在所有情況下,你的儲存帳號所達成的請求速率和頻寬,取決於儲存物件的大小、所使用的存取模式,以及應用程式所執行的工作負載類型。
測試您的服務,以判斷其效能是否符合您的需求。 如果可能,請避免流量速率突然飆升,並確保流量在各分割區之間均勻分布。
當你的應用程式達到分割區能承受的工作負載極限時,Azure 儲存體 會開始回傳錯誤代碼 503(伺服器忙碌)或錯誤代碼 500(操作逾時)回應。 若發生 503 錯誤,請考慮修改您的應用程式,使用指數退換策略來進行重試。 指數退讓減少了分割區的負載,並緩解了該分割區的流量激增。
關於 Azure 儲存體 帳戶的服務水準協議(SLA),請參見 Storage Accounts 的 SLA。
Blob 儲存體的規模目標設定
| 資源 | 標的 |
|---|---|
| 單一 Blob 容器的大小上限 | 同儲存體帳戶容量上限 |
| 區塊 Blob 或附加 Blob 中的區塊數目上限 | 50,000 個區塊 |
| 區塊 Blob 中的區塊大小上限 | 4,000 MiB |
| 區塊 Blob 的大小上限 | 50,000 x 4,000 MiB(約 190.7 TiB) |
| 附加 Blob 中的區塊大小上限 | 4 MiB |
| 附加 Blob 的大小上限 | 50,000 x 4 MiB (大約 195 GiB) |
| 分頁 Blob 的大小上限 | 8 TiB2 |
| 每個 Blob 容器儲存的存取原則最大數目 | 5 |
| 單一區塊塊的目標請求率 | 每秒最多可達 3,000 次請求 |
| 單頁 blob 的目標要求率 | 每秒最多 500 項要求 |
| 單一頁面 Blob 的目標輸送量 | 每秒最多 60 MiB2 |
| 單一區塊 Blob 的目標輸送量 | 最高儲存體帳戶的輸入/輸出限制1 |
1 單一 Blob 的輸送量取決於數個因素。 這些因素包括但不限於並發性、請求大小、效能等級、上傳來源速度,以及下載目的地。 若要利用高輸送量區塊 Blob 的效能增強功能,請上傳較大的 Blob 或區塊。 具體來說,執行 Put Blob 或 Put Block 操作,當 blob 或區塊的大小超過 256 KiB。
2 已啟用階層命名空間的帳戶尚不支援分頁 Blob。
下表描述服務版本所允許的最大區塊和 Blob 大小。
| 服務版本 | 區塊大小上限 (透過放置區塊) | Blob 大小上限 (透過放置區塊清單) | 透過單一寫入作業的 Blob 大小上限 (透過 Put Blob) |
|---|---|---|---|
| 版本 2019-12-12 和更新版本 | 4,000 MiB | 約 190.7 TiB(4,000 MiB x 50,000 區塊) | 5,000 MiB |
| 版本 2016-05-31 至 版本 2019-07-07 | 100 MiB | 約 4.75 TiB(100 MiB x 50,000 區塊) | 256 百萬兆基 |
| 2016-05-31 之前的版本 | 4 MiB | 約 195 GiB(4 MiB x 50,000 區塊) | 64 MiB |
熱分割區:偵測、監控與緩解
Azure Blob 儲存體 將資料與請求分散到各個分割區,以協助擴展工作負載。 儲存帳號可以擁有可用容量與吞吐量,而將流量集中於狹窄分割區鍵範圍的工作負載則會面臨分割層級的吞吐量限制。
當單一分割區接收到明顯多於其他分割區的流量時,該分割區會成為 熱分割區。 blob 的分割鍵結合了儲存帳號名稱、容器名稱與 blob 名稱,因此序列或僅附加命名方案能將流量集中於單一分割區。
當分割區變得過熱時,您的應用程式可能會注意到延遲增加,並在儲存體帳戶接近文件所述的延展性限制之前,收到 HTTP 503(伺服器忙碌)或 HTTP 500(作業逾時)回應。
若要緩解熱點分區問題:
請避免使用會將流量集中到單一分區的循序或僅附加 Blob 命名結構描述規則。
當發生節流錯誤時,請使用指數退避重試策略。
當你引入新工作負載時,逐步提高請求率。
要偵測限速並找出過度需求的來源,請使用 Azure 監視器 的指標與資源日誌。
欲了解更多資訊,請參閱 降低 Azure Blob 儲存體中的熱分割區問題。