如何在標準 (手動) 和自動調整佈建輸送量之間進行選擇
適用於:NoSQL MongoDB Cassandra Gremlin Table
Azure Cosmos DB 支援兩種佈建輸送量類型或供應項目:標準 (手動) 和自動調整。 這兩種輸送量類型適用於需要高效能和高度調整的任務關鍵性工作負載,並受到相同 Azure Cosmos DB SLA 的輸送量、可用性、延遲和一致性支援。
本文描述如何針對工作負載,在標準 (手動) 和自動調整佈建輸送量之間進行選擇。
佈建輸送量類型概觀
請務必先了解佈建輸送量在 Azure Cosmos DB 中的運作方式,再深入探索標準 (手動) 和自動調整之間的差異。
當使用佈建輸送量時,您可設定工作負載所需的輸送量,並以每秒的要求單位 (RU/秒) 進行測量。 服務會佈建支援輸送量需求所需的容量。 針對服務的資料庫作業 (例如讀取、寫入和查詢) 會使用一些要求單位 (RU) 數量。 深入了解要求單位。
下表顯示標準 (手動) 和自動調整之間的高階比較。
描述 | 標準 (手動) | Autoscale |
---|---|---|
最適合 | 流量穩定或可預測的工作負載 | 流量變動或無法預測的工作負載。 請參閱自動調整的使用案例。 |
運作方式 | 您會佈建一段時間內靜態 (除非手動予以變更) 的固定 RU/秒數量 T 。 每秒最多可使用 T RU/秒的輸送量。 例如,如果設定標準 (手動) 400 RU/秒,則輸送量會維持在 400 RU/秒。 |
您會設定不想讓系統超過的最高或最大 RU/秒 Tmax 。 系統會自動調整輸送量 T ,使 0.1* Tmax <= T <= Tmax 。 例如,如果設定 4000 RU/秒的自動調整最大 RU/秒,則系統會在 400 - 4000 RU/秒之間進行調整。 |
使用時機 | 您想要手動管理輸送量容量 (RU/秒) 並自行調整。 您有很高且一致的佈建 RU/秒使用率。 在一個月的所有時數中,如果設定佈建的 RU/秒 T ,並在 66% 或更多的時數內使用全額,則標準 (手動) 佈建的 RU/秒預計可省下費用這是根據設定標準 (手動) 中 T 和自動調整中相同數量 Tmax 之間的比較而來。 |
您想讓 Azure Cosmos DB 根據使用量來管理輸送量容量 (RU/秒) 和規模。 您有變動或難以預測的 RU/秒使用量。 在一個月的所有時數中,如果設定自動調整最大 RU/秒 Tmax ,並在 66% 或更少的時數內使用全額 Tmax ,則自動調整預計可為您省下費用。這是根據設定自動調整 Tmax 和標準 (手動) 輸送量中相同數量 T 之間的比較而來。 |
計費模型 | 無論使用多少 RU,以 RU/秒佈建的計費都是每小時完成一次。 範例: 在小時 1 和 2 中,我們會依標準 (手動) 費率來收取這兩個小時的 400 RU/秒費用。 |
我們會每小時根據系統在該小時內調整到的最高 RU/秒來收取費用。 範例: Tmax 的 10%)我們會依自動調整佈建輸送量費率來收取小時 1 的 3500 RU/秒和小時 2 的 400 RU/秒費用。 每 RU/秒的自動調整費率為 1.5 * 標準 (手動) 費率。 |
如果超過佈建的 RU/秒會發生什麼狀況 | RU/秒會在佈建的內容保持靜態。 任何在一秒內使用超過佈建 RU 的要求都會有速率限制,並在回應時建議重試前要等候的時間。 您可視需要手動增加或減少 RU/秒。 | 系統可將 RU/秒擴大為自動調整最大 RU/秒。 任何在一秒內使用超過自動調整最大 RU/秒的要求都會有速率限制,並在回應時建議重試前要等候的時間。 |
了解流量模式
新的應用程式
如果要建置新的應用程式,但還不知道流量模式,則可能會想要從進入點 RU/秒 (或最小 RU/秒) 開始,以避免一開始就過度佈建。 或者,如果有不需要高度調整的小型應用程式,則可能只想要佈建最小進入點 RU/秒,以將成本最佳化。 針對具有低預期流量的小型應用程式,您也可以考慮無伺服器容量模式。
無論您是否打算使用標準 (手動) 或自動調整,以下是您應該考慮的事項:
如果在 400 RU/秒的進入點佈建標準 (手動) RU/秒,除非手動變更輸送量,否則將無法使用超過 400 RU/秒。 我們會每小時依標準 (手動) 佈建輸送量費率來收取 400 RU/秒的費用。
如果您在 4000 RU/秒的最大 RU/秒佈建自動調整輸送量,則資源會在 400 到 4000 RU/秒之間進行調整。 由於每 RU/秒的自動調整輸送量計費是標準 (手動) 費率的 1.5 倍,因此在系統已縮小為 400 RU/秒最小值的時數內,您會支付比手動佈建 400 RU/秒時更高的費用。 不過,使用自動調整,如果在任何時候應用程式流量暴增,則最多可使用 4000 RU/秒,而不需要使用者採取動作。 一般來說,您應該將能夠使用最多 RU/秒的優點,與 1.5 倍的自動調整費率進行衡量。
使用 Azure Cosmos DB 容量計算機來估計輸送量需求。
現有的應用程式
如果有使用標準 (手動) 佈建輸送量的現有應用程式,則可使用 Azure 監視器計量來判斷流量模式是否適用於自動調整。
首先,尋找資料庫或容器的標準化要求單位使用量計量。
接下來,判斷標準化使用率在一段時間內的變化。 找出每個小時的最高標準化使用率。 然後,計算所有時數的平均標準化使用率。 如果您看到平均使用率小於 66%,請考慮在資料庫或容器上啟用自動調整。 相反地,如果平均使用率大於 66%,建議您維持標準 (手動) 佈建的輸送量。
提示
如果您的帳戶設定為使用多區域寫入,並且具有多個區域,則手動和自動調整的每 100 RU/秒費率會相同。 這表示無論使用率為何,啟用自動調整都不會產生任何額外成本。 如此一來,當您有多個區域時,一律建議搭配使用自動調整與多區域寫入,只支付您應用程式所調整的 RU/秒費用。 如果您有多區域寫入和一個區域,則請使用平均使用率來判斷自動調整是否可節省成本。
範例
讓我們看看兩個不同的範例工作負載,並分析它們是否適合手動或自動調整輸送量。 為了說明一般方式,我們會分析三個小時的歷程記錄,以判斷使用手動與自動調整的成本差異。 針對生產工作負載,建議使用 7 到 30 天的歷程記錄 (如果有的話,也可以提供更長的時間) 來建立 RU/秒使用量的模式。
注意
本文件中顯示的範例全都會以美國非政府區域中所部署的 Azure Cosmos DB 帳戶價格為準。 定價和計算會隨著您使用的區域而不同,如需最新的定價資訊,請參閱 Azure Cosmos DB 定價頁面。
假設:
- 假設我們目前有 30,000 RU/秒的手動輸送量。
- 我們的區域設定為具有單一區域寫入與一個區域。 如果我們有多個區域,則會將每小時成本乘上區域數目。
- 使用單一區域寫入帳戶中手動 (每小時每 100 RU/秒為 $0.008 美元) 和自動調整輸送量 (每小時每 100 RU/秒為 $0.012 美元) 的公開定價費率。 如需詳細資料,請參閱定價頁面。
範例 1:變數工作負載 (建議使用自動調整)
首先,我們會查看標準化 RU 耗用量。 此工作負載具有變動流量,而標準化 RU 耗用量範圍從 6% 到 100%。 100% 的尖峰不常出現,也很難預測,而且使用時數很多,但使用率很低。
讓我們比較下列兩者的成本:佈建 30,000 RU/秒手動輸送量,與將自動調整最大 RU/秒設定為 30,000 (在 3000 - 30,000 RU/秒之間進行調整)。
現在,讓我們分析歷程記錄。 假設我們有下表所述的使用率。 這三小時的平均使用率為 39%。 因為標準化 RU 耗用量平均小於 66%,所以我們使用自動調整來節省費用。
請注意,在第 1 小時中,有 6% 的使用率時,自動調整會以 10% 的最大 RU/秒為單位收取 RU/秒費用,這是每小時的最小值。 雖然自動調整的成本在特定時數內可能會高於手動輸送量,但是只要所有時數的平均使用率低於 66%,自動調整就會降低整體成本。
時段 | 使用率 | 計費的自動調整 RU/秒 | 選項 1:手動 30,000 RU/秒 | 選項 2:3000 - 30,000 RU/秒之間的自動調整 |
---|---|---|---|---|
第 1 小時 | 6% | 3000 | 30,000 * 0.008 / 100 = $2.40 | 3000 * 0.012 / 100 = $0.36 |
第 2 小時 | 100% | 30,000 | 30,000 * 0.008 / 100 = $2.40 | 30,000 * 0.012 / 100 = $3.60 |
第 3 小時 | 11% | 3300 | 30,000 * 0.008 / 100 = $2.40 | 3300 * 0.012 / 100 = $0.40 |
總數 | $7.20 | $4.36 (省下 39%) |
範例 2:穩定工作負載 (建議使用手動輸送量)
此工作負載具有穩定流量,而標準化 RU 耗用量範圍從 72% 到 100%。 佈建 30,000 RU/秒時,這表示我們正在使用 21,600 到 30,000 RU/秒。
讓我們比較下列兩者的成本:佈建 30,000 RU/秒手動輸送量,與將自動調整最大 RU/秒設定為 30,000 (在 3000 - 30,000 RU/秒之間進行調整)。
假設我們具有使用率歷程記錄,如表格中所述。 這三小時的平均使用率為 88%。 因為標準化 RU 耗用量平均大於 66%,所以我們使用手動輸送量來節省費用。
一般情況下,如果一個月內所有 730 小時的平均使用率大於 66%,則將會使用手動輸送量來節省費用。
時段 | 使用率 | 計費的自動調整 RU/秒 | 選項 1:手動 30,000 RU/秒 | 選項 2:3000 - 30,000 RU/秒之間的自動調整 |
---|---|---|---|---|
第 1 小時 | 72% | 21,600 | 30,000 * 0.008 / 100 = $2.40 | 21600 * 0.012 / 100 = $2.59 |
第 2 小時 | 93% | 28,000 | 30,000 * 0.008 / 100 = $2.40 | 28,000 * 0.012 / 100 = $3.36 |
第 3 小時 | 100% | 30,000 | 30,000 * 0.008 / 100 = $2.40 | 30,000 * 0.012 / 100 = $3.60 |
總數 | $7.20 | $9.55 |
提示
透過標準 (手動) 輸送量,則可使用標準化使用率計量來估計在切換至自動調整時可使用的實際 RU/秒。 將某個時間點的標準化使用率乘以目前所佈建標準 (手動) RU/秒。 例如,如果佈建了 5000 RU/秒,且標準化使用率為 90%,則 RU/秒使用量為 0.9 * 5000 = 4500 RU/秒。 如果看到流量模式為變動,但您過度佈建或佈建不足,則可能會想要啟用自動調整,然後據以變更自動調整最大 RU/秒設定。
如何計算平均使用率
最高 RU/秒的自動調整計費,而調整單位是一小時。 分析一段時間的標準化 RU 耗用量時,請務必在計算平均值時使用每小時的最高使用率。
若要計算所有時數最高使用率的平均值:
- 將標準化 RU 耗用量計量的 [彙總] 設定為 [最大]。
- 將 [時間細微性] 選取為 1 小時。
- 導覽至 [圖表選項]。
- 選取橫條圖選項。
- 在 [共用] 下,選取 [下載至 Excel] 選項。 從產生的試算表中,計算所有時數的平均使用率。
測量和監視使用量
經過一段時間,在選擇輸送量類型之後,您應該監視應用程式並視需要進行調整。
使用自動調整時,請使用 Azure 監視器來查看佈建的自動調整最大 RU/秒 (自動調整最大輸送量),以及系統目前調整到的 RU/秒 (佈建輸送量)。
下列是使用自動調整的變動或無法預測工作負載範例。 請注意,當沒有任何流量時,系統會將 RU/秒調整為最小值 (在本案例中為 5,000 RU/秒),也就是最大 RU/秒 (在本案例中為 50,000 RU/秒) 的 10%。
將標準佈建的輸送量遷移至自動調整
要將大量資源從標準佈建輸送量遷移至自動調整的使用者,可以使用 Azure CLI 指令碼,將 Azure 訂用帳戶中的每個輸送量資源遷移至自動調整。 如需詳細資訊,請參閱轉換成自動調整。
下一步
- 使用 RU 計算機來估計新工作負載的輸送量。
- 使用 Azure 監視器來監視現有的工作負載。
- 了解如何在 Azure Cosmos DB 資料庫或容器上佈建自動調整輸送量。
- 檢閱自動調整常見問題集。
- 正在嘗試為遷移至 Azure Cosmos DB 進行容量規劃嗎? 您可以使用現有資料庫叢集的相關資訊進行容量規劃。
- 如果您知道現有資料庫叢集中的虛擬核心和伺服器數目,請參閱使用虛擬核心或 vCPU 來估計要求單位
- 如果您知道目前資料庫工作負載的一般要求率,請參閱使用 Azure Cosmos DB 容量規劃工具來估計要求單位