使用自動調整輸送量來建立 Azure Cosmos DB 容器和資料庫
適用於:NoSQL MongoDB Cassandra Gremlin Table
在 Azure Cosmos DB 中,您可以在資料庫和容器上設定標準 (手動) 或自動調整佈建輸送量。 Azure Cosmos DB 中的自動調整佈建輸送量,可讓您自動並立即縮放資料庫或容器的輸送量 (RU/秒)。
自動調整佈建輸送量非常適合有變動或無法預測流量模式的任務關鍵性工作負載,而且需要高效能和規模的 SLA。 根據預設,自動調整會根據最活躍的區域和分割區來調整工作負載。 針對跨區域和分割區具有不同工作負載模式的非一致性工作負載,此調整可能會導致不必要的相應增加。 動態調整或動態自動 調整是自動調整布建的增強功能,可協助根據每個區域和每個數據分割層級的使用量,獨立調整這類非一般工作負載。 如果您經常遇到經常性存取的數據分割和/或有多個區域,動態調整可讓您節省成本。
自動調整的優點
使用自動調整佈建輸送量設定的 Azure Cosmos DB 資料庫和容器具有下列優點:
基本:自動調整會移除使用自訂指令碼或手動縮放容量來管理 RU/秒的複雜性。
可調整:資料庫和容器會視需要自動調整佈建輸送量。 用戶端連線、應用程式或 Azure Cosmos DB SLA 不會中斷。
符合成本效益:自動調整會在不使用時相應減少,協助您最佳化 RU/秒使用量和成本使用量。 您只需以每小時為基礎,針對您工作負載所需的資源付費。 在一個月的所有時數中,如果您設定自動調整 RU/秒上限 (Tmax),並在 66% 或更少的時數內使用 Tmax 全額,則自動調整可為您節省成本。 除了動態調整之外,新增高可用性的次要地區更具成本效益,因為每個區域和分割區會根據實際使用量獨立調整。 若要深入瞭解,請參閱如何選擇標準 (手動) 或自動調整佈建輸送量一文。
高可用性:使用自動調整的資料庫和容器會使用相同的全域分散式、容錯、高可用性 Azure Cosmos DB 後端,以確保資料持久性和高可用性。
自動調整的使用案例
自動調整的使用案例包括:
變化或不可預測工作負載:當您的工作負載在使用量上有變動或無法預期的尖峰時,自動調整可協助根據使用量自動相應增加和減少。 範例包括視季節性而有不同流量模式的零售網站;在一天內的不同時間出現尖峰的 IOT 工作負載;每個月或一年會看到幾次或更多尖峰使用量的商務應用程式。 使用自動調整時,您不再需要手動佈建尖峰或平均容量。
新應用程式:果您正在開發新的應用程式,而不確定您需要的輸送量 (RU/秒),自動調整可讓您輕鬆地開始使用。 您可以從 100 - 1000 RU/秒的自動調整進入點開始,監視您的使用量,並在一段時間後判斷正確的 RU/秒。
不常使用的應用程式: 如果您有應用程式,此應用程式只用於一天、一周或一個月數次,例如低磁碟區應用程式/Web/部落格網站。 自動調整會調整容量來處理尖峰使用量,並在超過時相應減少。
開發和測試工作負載:如果您或您的小組在工作時間使用 Azure Cosmos DB 資料庫和容器,但在夜間或週末不需要使用,自動調整會在不使用時縮小至最小值,以協助節省成本。
已排程的生產工作負載/查詢:如果您有一系列想要在閒置期間內執行的排程要求、作業或查詢,可以輕鬆地使用自動調整來執行這項工作。 當您需要執行工作負載時,輸送量會自動調整為所需的值規模,並且隨後相應減少。
建立這些問題的自訂解決方案不僅需要大量的時間,還會造成應用程式設定或程式碼中的複雜性。 自動調整可讓上述案例現成可用,且不再需要自訂或手動縮放容量。
動態調整的使用案例
動態調整的使用案例包括:
- 具有高流量主要區域和次要被動區域以進行災害復原的資料庫工作負載。
- 透過動態調整,使用多個區域達到高可用性會更具成本效益。 次要區域會在閒置時獨立並自動地相應減少。 次要區域也會在變成作用中,以及處理來自主要區域的寫入複寫流量時,自動相應增加。
- 多區域資料庫工作負載。
- 由於全天流量的自然增長和下降,這些工作負載通常會發現跨區域的要求分佈不均。 例如,資料庫可能在跨全球分散時區的工作時間內處於活動狀態。
自動調整佈建輸送量的運作方式
設定具有自動調整的容器和資料庫時,您可以指定所需的最大輸送量 Tmax
。 Azure Cosmos DB 會調整 T
這類 0.1*Tmax <= T <= Tmax
的輸送量。 例如,如果您將最大輸送量設定為 20,000 RU/秒,則輸送量會在 2000 到 20,000 RU/秒之間進行調整。 因為縮放比例是自動且即時的,所以您可以隨時可以取用到佈建的最大值 Tmax
而不會發生延遲。
每小時,系統會收取在一小時內調整到最高輸送量 T
的費用。 啟用動態調整時,調整會以每個實體分割區和區域的 RU/秒使用量為基礎。 由於每個分割區和區域會獨立調整,這可能會導致非一般工作負載的成本節省,因為避免不必要的相應增加。
自動調整最大輸送量 Tmax
的進入點從 1000 RU/秒開始,這會在 100 - 1000 RU/秒之間縮放。 您可以以 1000 RU/秒的增量設定 Tmax
,並隨時變更該值。
例如,如果我們有 1000 RU/秒和 2 個分割區的集合,則每個分割區最多可以 500 RU/秒。 經過一小時活動後,使用率看起來會像這樣:
區域 | 資料分割 | 輸送量 | 使用率 | 備註 |
---|---|---|---|---|
寫入 | P1 | <= 500 RU/秒 | 100% | 500 RU/秒,包含用於寫入作業的 50 RU/秒,以及讀取作業的 450 RU/秒。 |
寫入 | P2 | <= 200 RU/秒 | 40% | 200 RU/秒,包含所有讀取作業。 |
參閱 | P1 | <= 150 RU/秒 | 30% | 150 RU/秒,包含用於從寫入區域複製寫入的 50 RU/秒。 100 RU/秒則用於此區域中的讀取作業。 |
參閱 | P2 | <= 50 RU/秒 | 10% |
如果沒有動態調整,所有分割區都會根據最熱的數據分割來統一調整。 在此範例中,由於最熱的數據分割使用率為 100%,寫入和讀取區域中的所有分割區都會調整為 1000 RU/秒,使 RU/秒總計調整為 2000 RU/秒。
使用動態調整,因為每個分割區和區域的輸送量都會獨立調整,因此調整為900 RU/秒的總RU/ 秒,這更能反映實際的流量模式並降低成本。
在現有資源上啟用自動調整
使用 Azure 入口網站、CLI 或 PowerShell,在現有的資料庫或容器上啟用自動調整。 您可以隨時在自動調整和標準 (手動) 佈建輸送量之間切換。 如需詳細資訊,請參考這份文件。
自動調整的輸送量和儲存體限制
對於 Tmax
的任何值,資料庫或容器可以儲存總計 0.1 * Tmax GB
。 達到此數量的儲存體之後,將會根據新的儲存體值自動增加 RU/秒的上限,且不會影響您的應用程式。
例如,如果您從 50,000 RU/秒的最大 RU/秒開始 (在 5000 - 50,000 RU/秒之間調整),您最多可以儲存 5000 GB 的資料。 如果超過 5000 GB:例如儲存體現在是 6000 GB,新的每秒最大 RU 會是 60,000 RU/秒 (在 6000 - 60,000 RU/秒之間調整)。
當您搭配自動調整使用資料庫層級輸送量時,可以讓前 25 個容器共用自動調整 1000 的最大 RU/秒 (在 100 - 1000 RU/秒之間調整),前提是您未超過 100 GB 的儲存體。 如需詳細資訊,請參考此文件。
啟用動態調整
依預設,會針對在 2024 年 9 月 25 日之後建立的所有 Azure Cosmos DB 帳戶啟用動態調整。 想要為其較舊帳戶啟用此功能的客戶,可以透過 Azure PowerShell/CLI/Rest API,或從 Azure 入口網站的 [功能] 窗格以程序設計方式執行這項操作,如下所示:
瀏覽至 Azure 入口網站中的 Azure Cosmos DB 帳戶。
瀏覽至 [功能] 頁面。
找出並啟用 [動態調整 (個別區域和個別分割區自動調整)] 功能。
重要
此功能會在帳戶層級啟用,因此帳戶內的所有自動調整容器和共用的輸送量資料庫都會自動套用這項功能。 啟用此功能不會影響使用手動輸送量的帳戶中的資源。 手動資源需要變更為自動調整,才能利用動態調整。 啟用此功能不會導致停機或影響效能。 此功能不適用於無伺服器帳戶。
監視計量
您可以使用下列計量來監視自動調整和動態調整:
標準名稱 | 定義 | 計量使用量 |
---|---|---|
佈建的輸送量 | 顯示整個小時內彙總的最高 RU/秒,並表示該小時內的總 RU/秒。 | 您可以使用 Provisioned Throughput 計量來查看每小時計費的 RU/秒。 使用自動調整時,系統會根據每小時作用中最高的分割區計費,且相同的會套用至所有分割區和區域。 使用動態自動調整時,您會針對每個分割區和區域層級上每小時調整的彙總最高 RU/秒計費。 |
標準化 RU 使用量 | 此計量代表每個分割區和區域層級上已取用 RU/秒與已佈建 RU/秒的比例。 | 使用此計量來判定自動調整最大輸送量是否為佈建不足或過度佈建。 如果計量值一致為 100%,且您的應用程式看到速率限制 (429 錯誤碼),則您可能需要更多 RU/秒。 相反地,如果此計量值較低且沒有速率限制,則可能會有進行最佳化和縮減 RU/秒的空間。 深入了解如何解譯和偵錯代碼為 429 的速率限制錯誤。 由於來自主要區域的寫入複寫流量以及次要區域上的任何讀取流量,此 Normalized RU Consumption 計量會反映次要區域中所使用的 RU/秒。 |
自動調整的 RU | 僅針對已啟用動態自動調整的帳戶,顯示每個分割區和區域層級的動態調整佈建的輸送量。 | 使用此計量來查看每個區域中的分割區如何根據其使用量獨立調整。 使用 Azure 監視器計量 - Autoscaled RU 來分析如何跨磁碟分割區和區域套用新的自動調整。 篩選至所需的資料庫帳戶和容器,然後依 Physical PartitionID 計量篩選或分割。 此計量會顯示其不同區域的所有分割區。 |
比較 – 以手動與自動調整輸送量設定的容器
如需詳細資訊,請參閱此文件,了解如何選擇標準 (手動) 和自動調整輸送量。
具有標準 (手動) 輸送量的容器 | 具有自動調整輸送量的容器 | |
---|---|---|
佈建的輸送量 (RU/秒) | 手動佈建。 | 根據工作負載使用模式自動及立即調整。 |
要求/作業的速率限制 (429) | 如果耗用量超過佈建的容量,則可能會發生。 | 如果您在設定的自動調整輸送量範圍內使用 RU/秒,則不會發生這種情況。 |
容量規劃 | 您必須進行容量規劃,並設定所需的確切輸送量。 | 系統會自動負責容量規劃及容量管理。 |
定價 | 您需支付每小時手動佈建的 RU/秒 (使用標準 (手動) RU/秒的每小時費率)。 | 您每小時要支付系統在一小時內所相應增加的最高 RU/秒。 針對單一寫入區域帳戶,您需支付每小時使用的 RU/秒 (使用 自動調整 RU/秒的每小時費率)。 針對具有多個寫入區域的帳戶,自動調整不會額外收費。 您需要依相同的多重區域寫入 RU/秒每小時費率,支付每小時使用輸送量的費用。 |
最適合工作負載類型 | 可預測且穩定的工作負載 | 無法預期和變動的工作負載 |
將標準佈建的輸送量遷移至自動調整
要將大量資源從標準佈建輸送量移轉至自動調整的使用者,可以使用 Azure CLI 指令,將 Azure 訂用帳戶中的每個輸送量資源移轉至自動調整。 如需詳細資訊,請參閱轉換成自動調整。
下一步
- 檢閱自動調整常見問題集。
- 了解如何在手動與自動調整輸送量之間進行選擇。
- 了解如何在 Azure Cosmos DB 資料庫或容器上佈建自動調整輸送量。
- 深入了解 Azure Cosmos DB 中的資料分割。
- 正在嘗試為遷移至 Azure Cosmos DB 進行容量規劃嗎? 您可以使用現有資料庫叢集的相關資訊進行容量規劃。
- 如果您知道現有資料庫叢集中的虛擬核心和伺服器數目,請參閱使用虛擬核心或 vCPU 來估計要求單位
- 如果您知道目前資料庫工作負載的一般要求率,請參閱使用 Azure Cosmos DB 容量規劃工具來估計要求單位