Azure Cosmos DB for MongoDB vCore 叢集的計算和儲存體設定
適用於: MongoDB 虛擬核心
計算資源會以 vCore 的形式提供,vCore 代表了基礎硬體的邏輯 CPU。 佈建的儲存大小是指叢集中分區可用的容量。 儲存體會用於資料庫檔案、暫存檔案、交易記錄和資料庫伺服器記錄。 您可以獨立選取計算和儲存體設定。 選取的計算和儲存體值會套用至叢集中的每個分區。
Azure Cosmos DB for MongoDB vCore 的計算
單一分區中的 RAM 總數是以選取的虛擬核心數目為基礎。
叢集層 | 虛擬核心 | 一個分區,GiB RAM |
---|---|---|
M25 | 2 (可高載) | 8 |
M30 | 2 | 8 |
M40 | 4 | 16 |
M50 | 8 | 32 |
M60 | 16 | 64 |
M80 | 32 | 128 |
M200 | 64 | 256 |
Azure Cosmos DB for MongoDB vCore 中的儲存體
您佈建的儲存體總數也會定義叢集中每個分區可用的 I/O 容量。
儲存體大小 (GiB) | IOPS 上限 |
---|---|
32 | 3,500† |
64 | 3,500† |
128 | 3,500† |
256 | 3,500† |
512 | 3,500† |
1,024 | 5,000 |
2,048 | 7,500 |
4,095 | 7,500 |
8,192 | 16,000 |
16,384 | 18,000 |
32,767 | 20,000 |
†可用磁碟高載的最大 IOPS。 最多可包含 512 GiB 的儲存體,並已啟用免費磁碟高載功能。
大幅提高計算/儲存體組態的 IOPS
每個計算組態都有 IOPS 限制,這取決於虛擬核心數目。 請務必選取叢集的計算組態,以充分利用所選儲存體中的 IOPS。
儲存體大小 | 儲存體 IOPS,最多 | 最小計算層級 | 最小虛擬核心數 |
---|---|---|---|
最高 0.5 TiB | 3,500† | M30 | 2 個 vCore |
1 TiB | 5,000 | M40 | 4 個 V 核心 |
2 TiB | 7,500 | M50 | 8 個 V 核心 |
4 TiB | 7,500 | M50 | 8 個 V 核心 |
8 TiB | 16,000 | M60 | 16 個 V 核心 |
16 TiB | 18,000 | M60 | 16 個 V 核心 |
32 TiB | 20,000 | M60 | 16 個 V 核心 |
†可用磁碟高載的最大 IOPS。 最多可包含 512 GiB 的儲存體,並已啟用免費磁碟高載功能。
例如,如果每個分區都需要 8 TiB 以上的儲存體,則請確定您針對節點的計算設定選取 16 個以上的虛擬核心。 該選取項目可讓您大幅提高所選取儲存體提供的 IOPS 使用量。
計算和儲存體的考量
工作集和記憶體的考量
在 Azure Cosmos DB for MongoDB vCore 中,工作集是指應用程式經常存取和使用的資料部分。 包含應用程式一般作業期間經常定期讀取或寫入的資料及索引。 工作集的概念對於效能最佳化很重要,因為 MongoDB 和許多資料庫一樣,在工作集適合放入 RAM 時表現最佳。
若要定義及了解 MongoDB 資料庫工作集,請考慮下列元件:
- 經常存取的資料:此資料包括應用程式經常定期讀取或更新的文件。
- 索引:查詢作業中使用的索引也會構成工作集的一部分,因為索引需要載入記憶體中,以確保快速存取。
- 應用程式使用模式:分析應用程式的使用模式,有助於識別最常存取資料的哪些部分。
藉由將工作集保留在 RAM 中,您可以將較慢的磁碟 I/O 作業降到最低,藉此改善 MongoDB 資料庫的效能。 如果您發現工作集超過可用的 RAM,您可以考慮最佳化資料模型、新增更多 RAM,或使用分區化將資料分散到多個節點。
為工作負載選擇最佳設定
為 Azure Cosmos DB for MongoDB vCore 工作負載判定正確的計算和儲存體設定,需要評估與應用程式需求和使用模式相關的多個因素。 判斷最佳設定的重要步驟和考量事項包括:
了解您的工作負載
- 資料量:估計資料 (包括索引) 的總大小。
- 讀取/寫入比例:決定讀取作業與寫入作業的比例。
- 查詢模式:分析應用程式執行的查詢類型。 例如,簡單的讀取、複雜的彙總。
- 並行:評估資料庫需要處理的並行作業數目。
監視目前的效能
- 資源使用率:請先使用監視工具追蹤 CPU、記憶體、磁碟 I/O 和網路使用量,再將工作負載移至 Azure,並在 Azure Cosmos DB for MongoDB vCore 叢集上開始執行 MongoDB 工作負載之後監視計量。
- 效能計量:監視關鍵效能計量,例如延遲、輸送量和快取命中率。
- 瓶頸:識別任何現有的效能瓶頸,例如高 CPU 使用量、記憶體壓力或磁碟 I/O 變慢。
預估資源需求
- 記憶體:確定您的工作集 (經常存取的資料和索引) 適合放入 RAM。 如果您的工作集大小超過可用的記憶體,請考慮新增更多的 RAM 或最佳化您的資料模型。
- CPU:選擇可處理查詢負載和並行需求的 CPU 設定。 耗用大量 CPU 的工作負載可能需要更多核心。 在 Azure Cosmos DB for MongoDB vCore 叢集上使用「CPU 百分比」計量搭配「最大值」彙總,以查看歷程記錄的計算使用量模式。
- 儲存體 IOPS:選取具有足夠 IOPS 的儲存體,以處理讀取和寫入作業。 在叢集上使用「IOPS」計量搭配「最大值」彙總,以查看歷程記錄儲存體 IOPS 使用量。
- 網路:確保有足夠的網路頻寬來處理應用程式與資料庫之間的資料傳輸,特別是針對分散式設定。 請確定您已為 MongoDB 應用程式設定主機,以支援加速的網路技術,例如 SR-IOV。
適當地調整
- 垂直調整:相應增加和減少計算/RAM,並相應增加儲存體。
- 計算:如果您的工作負載需要暫時增加,或經常長時間超過 70% 的 CPU 使用率,請增加叢集上的虛擬核心/RAM。
- 請確定您在 Azure Cosmos DB for MongoDB vCore 資料庫中具有適當的資料保留期。 「保留」可讓您避免不必要的儲存體使用。 透過 使用 『Max』 匯總來設定「記憶體百分比」和/或「記憶體已使用」計量的警示 ,以監視記憶體使用量。 工作負載大小超過使用率的 70% 時,建議您增加儲存體。
- 水平調整:請考慮針對叢集使用多個分區,在工作負載成長時,將資料分散到多個 Azure Cosmos DB for MongoDB vCore 節點,以提高效能並獲得更好的容量管理。 這特別適用於大型資料集 (超過 2-4 TiB) 和高輸送量應用程式。
- 垂直調整:相應增加和減少計算/RAM,並相應增加儲存體。
測試和逐一查看
- 效能評定:針對具有不同設定的最常使用的查詢執行測量,以判斷對效能的影響。 使用 CPU/RAM 和 IOPS 計量和應用程式層級效能評定。
- 負載測試:進行負載測試以模擬生產工作負載,並驗證所選設定的效能。
- 持續監視:持續監視 Azure Cosmos DB for MongoDB vCore 部署,並視需要,根據變更工作負載和使用模式調整資源。
藉由有系統地評估這些因素,並持續監視和調整您的設定,可確保 MongoDB 部署已針對您的特定工作負載進行最佳化。
儲存體的考量
為您的工作負載確定適當的儲存大小需要考慮多種因素,以確保取得最佳效能和可擴縮性。 以下是 Azure Cosmos DB for MongoDB vCore 中儲存大小的考量事項:
Estimate data size:
- 計算 Azure Cosmos DB for MongoDB vCore 資料的預期大小。 請考慮:
- 目前的資料大小:如果從現有的資料庫移轉。
- 成長率:估計會隨著時間新增多少資料。
- 文件區塊和結構:了解您的資料架構和文件區塊,因為會影響儲存效率。
- 計算 Azure Cosmos DB for MongoDB vCore 資料的預期大小。 請考慮:
影響索引的因素:
- Azure Cosmos DB for MongoDB vCore 會使用索引進行有效率的查詢。 索引會耗用額外的磁碟空間。
- 根據下列項目估計索引的大小:
- 索引數目。
- 索引欄位的大小。
效能考量:
- 磁碟效能會影響資料庫作業,尤其是其工作集無法適合放入 RAM 的工作負載。 請考慮:
- I/O 輸送量:IOPS (每秒輸入/輸出作業) 是一秒內傳送至儲存體磁碟的要求數目。 儲存大小越大,IOPS 越高。 確保讀取/寫入作業有足夠的輸送量。 使用「IOPS」計量搭配「最大值」彙總來監視叢集上使用的 IOPS。
- 延遲:延遲是指應用程式收到單一要求,將其傳送至儲存體磁碟,然後將回應傳送給用戶端所花費的時間。 除了 IOPS 和輸送量,延遲也是應用程式效能的一個重要量值。 延遲主要是由使用的儲存體類型和儲存體設定所定義。 在 Azure Cosmos DB for MongoDB 等受控服務中,進階 SSD 磁碟等快速儲存體會與最佳化設定搭配使用,以減少延遲。
- 磁碟效能會影響資料庫作業,尤其是其工作集無法適合放入 RAM 的工作負載。 請考慮:
未來的成長和可擴縮性:
- 規劃未來的資料成長和可擴縮性需求。
- 配置超過目前需求的更多磁碟空間,以因應成長,而不需要頻繁地擴充儲存體。
範例計算:
- 假設您的初始資料大小為 500 GiB。
- 若要使用索引,可能會成長到 700 GiB。
- 如果您預期兩年內資料會翻倍,請規劃 1.4 TiB (700 GiB * 2)。
- 為額外負荷、成長和作業需求新增緩衝區。
- 您可能想要從 1 TiB 儲存體開始,並在大小超過 800 GiB 時,將其擴充為 2 TiB。
決定儲存大小需要結合評估目前和未來資料需求、考慮編製索引和壓縮,以及確保適當的效能和可擴縮性。 根據實際使用量和成長趨勢進行定期監視和調整,這對於維護最佳 MongoDB 效能也至關重要。