Azure DocumentDB 的運算資源以 vCore 形式提供,代表底層硬體的邏輯 CPU。 配置所需的儲存容量是指叢集中分片可用的容量。
儲存空間用於存放資料庫檔案、暫存檔案、交易日誌及資料庫伺服器日誌。 你可以獨立選擇運算和儲存設定。 所選的運算與儲存值會應用於叢集中的每個分片。
Compute in Azure DocumentDB
單一分片的總 RAM 容量是根據所選的 vCore 數量計算的。
| 叢集層 | 虛擬核心 | 一個分片,GiB (Gibibyte) 記憶體 |
|---|---|---|
| M10 號 | 1 (可高載) | 2 |
| M20 | 2 (可高載) | 4 |
| M25 | 2 (可高載) | 8 |
| M30 | 2 | 8 |
| M40 | 4 | 16 |
| M50 | 8 | 32 |
| M60 | 16 | 64 |
| M80 | 32 | 128 |
| M200 | 64 | 256 |
Storage in Azure DocumentDB
你分配的總儲存空間量也定義了叢集中每個分片可用的 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 上限,取決於 vCore 數量。 務必選擇叢集的運算配置,以充分利用所選儲存裝置的 IOPS。
| 儲存體大小 | 儲存 IOPS,最高可達 | 最小運算層 | 最小虛擬核心數 |
|---|---|---|---|
| 最高可達0.5 TiB | 3,500† | M30 | 2 個 V 核心 |
| 1 TiB (1 Tebibyte) | 5,000 | M40 | 4 個虛擬核心 |
| 2 TiB | 7,500 | M50 | 8 個虛擬核心 |
| 4 TiB | 7,500 | M50 | 8 個虛擬核心 |
| 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 個或更多 vCore。 這樣的選擇能讓你最大化所選儲存裝置所提供的 IOPS 使用率。
計算與儲存的考量
在配置 Azure DocumentDB 叢集時,了解運算與儲存選擇如何影響特定工作負載的效能、成本與可擴展性非常重要。
工作集與記憶體考量
在 Azure DocumentDB 中, 工作集 指的是你資料中經常被應用程式存取和使用的部分。 它包含了在應用程式典型操作中定期讀寫的資料與索引。 工作集的概念對於效能優化非常重要,因為 MongoDB 和許多資料庫一樣,當工作集能放入 RAM 時表現最佳。
為了定義並理解你的 MongoDB 資料庫工作集,請考慮以下元件:
- 經常存取的資料:這些資料包含應用程式會定期閱讀或更新的文件。
- 索引:用於查詢操作的索引也屬於工作集,因為它們需要載入記憶體以確保快速存取。
- 應用程式使用模式:分析應用程式的使用模式,有助於找出哪些資料部分被最常被存取。
透過將工作集保留在 RAM 中,你可以減少較慢的磁碟 I/O 操作,從而提升 MongoDB 資料庫的效能。 如果你的工作集超過可用 RAM,可以考慮優化資料模型、增加叢集記憶體,或使用分片技術將資料分散到多個節點。
根據工作負載選擇最佳配置
決定適合您 Azure DocumentDB 工作負載的計算與儲存配置,需評估多項與應用需求與使用模式相關的因素。 決定最佳配置的關鍵步驟與考量包括:
了解你的工作量
- 資料量:估算資料的總大小,包括索引。
- 讀寫比率:確定讀取操作與寫入操作的比例。
- 查詢模式:分析你的應用程式執行的查詢類型。 例如,簡單的讀取,複雜的彙整。
- 並行性:評估你的資料庫需要處理多少同時進行的操作。
監控目前的表現
- 資源使用率:在遷移工作負載到 Azure 之前,使用監控工具追蹤 CPU、記憶體、磁碟 I/O 和網路使用情況。 在將 MongoDB 工作負載部署到 Azure DocumentDB 叢集後,繼續使用 Azure 監控指標來監控。
- 效能指標:監控關鍵效能指標,如延遲、吞吐量及快取點擊率。
- 瓶頸:找出任何現有的效能瓶頸,例如高 CPU 使用率、記憶體壓力或硬碟 I/O 緩慢。
估算資源需求
- 記憶體:確保 你的工作集 (經常存取的資料和索引)能放進 RAM。 如果你的工作集大小超過可用記憶體,可以考慮增加 RAM 或優化資料模型。
- CPU:選擇能處理查詢負載與並行需求的 CPU 配置。 CPU 密集型工作負載可能需要更多核心。 在你的 Azure DocumentDB 叢集上使用「CPU 百分比」指標搭配「最大」彙整,查看歷史計算使用模式。
- 儲存 IOPS:選擇有足夠 IOPS 來處理讀寫操作的儲存空間。 在叢集上使用「IOPS」指標搭配「Max」彙整,查看過去的儲存 IOPS 使用情況。
- 網路:確保有足夠的網路頻寬來處理應用程式與資料庫之間的資料傳輸,特別是針對分散式架構。 請確保你的 MongoDB 應用程式的主機已配置為支援 加速網路 技術,例如 SR-IOV。
適當比例
-
垂直擴展:可放大計算/記憶體,並放大儲存空間。
- 運算:如果你的工作負載需要暫時增加,或經常長時間超過 70% CPU 使用率,請增加叢集的 vCore / RAM。
- 確保你的 Azure DocumentDB 資料庫有適當的資料保留。 保留能讓你避免不必要的儲存使用。 透過設定「儲存百分比」和/或「使用儲存空間」指標的 警示 ,並以「最大」彙整來監控儲存使用情況。 當你的工作負載超過70% 使用時,考慮增加儲存空間。
- 水平擴展:考慮使用多個分片來分散資料到多個 Azure DocumentDB 節點,以提升效能並提升容量管理,隨著工作負載增加。 這種擴展對於大型資料集(超過 2-4 TiB)及高吞吐量應用特別有用。
-
垂直擴展:可放大計算/記憶體,並放大儲存空間。
測試與迭代
- 基準測試:對最常用且配置不同的查詢進行測量,以判斷其對效能的影響。 使用 CPU/RAM 和 IOPS 指標,以及應用程式層級的基準測試。
- 負載測試:進行負載測試以模擬生產工作負載並驗證所選配置的效能。
- 持續監控:持續監控您的 Azure DocumentDB 部署,並根據工作負載與使用模式的變化調整資源。
透過系統性評估這些因素,並持續監控與調整配置,您可以確保 MongoDB 部署能針對您的特定工作負載進行最佳化。
儲存考量
決定適合您工作負載的儲存容量需考慮多項考量,以確保最佳效能與可擴展性。 以下是關於 Azure DocumentDB 儲存容量的考量:
估計資料大小:
- 計算你的 Azure DocumentDB 資料預期大小。 請考慮:
- 目前資料大小: 如果是從現有資料庫遷移過來。
- 成長率: 估算隨時間會新增多少資料。
- 文件大小與結構: 了解你的資料結構和文件大小,因為它們會影響儲存效率。
- 計算你的 Azure DocumentDB 資料預期大小。 請考慮:
影響索引的因素:
- Azure DocumentDB 使用 索引 來進行有效率的查詢。 索引會消耗額外的磁碟空間。
- 根據以下條件估算指數規模:
- 索引數量。
- 索引欄位的大小。
效能考量:
- 磁碟效能會影響資料庫操作,尤其是對於無法將 工作集 放入 RAM 的工作負載。 請考慮:
- 輸入輸出吞吐量: IOPS,即每秒輸入/輸出操作數,是指每秒內傳送到儲存磁碟的請求數量。 更大的儲存空間帶來更多的 IOPS。 確保讀寫操作有足夠的吞吐量。 使用「IOPS」指標搭配「Max」彙整來監控叢集上的 IOPS 使用情況。
- 延遲: 延遲是指應用程式接收單一請求、將其傳送到儲存磁碟,並將回應傳送給用戶端所需的時間。 延遲除了 IOPS 和吞吐量外,也是衡量應用程式效能的重要指標。 所使用的儲存類型與儲存配置在很大程度上決定了延遲。 在像 Azure DocumentDB 這樣的託管服務中,快速儲存裝置如高級 SSD 硬碟會被優化為降低延遲。
- 磁碟效能會影響資料庫操作,尤其是對於無法將 工作集 放入 RAM 的工作負載。 請考慮:
未來成長與可擴展性:
- 規劃未來資料成長與擴展需求。
- 在不頻繁擴充儲存空間的情況下,分配超出現有需求的磁碟空間。
範例計算:
- 假設你的初始資料大小是 500 GiB。
- 加上指數,可能會成長到700 GiB。
- 如果你預計兩年內資料會翻倍,建議規劃 1.4 TiB(700 GiB × 2)。
- 為營運成本、成長及營運需求增加緩衝區。
- 你可能想先用 1-TiB 儲存,當容量超過 800 GiB 時升級到 2 TiB。
決定儲存容量涉及估算當前與未來資料需求、考慮索引與壓縮,以及確保足夠的效能與可擴展性。 定期監控並根據實際使用與成長趨勢調整,對於維持 MongoDB 最佳效能也至關重要。
什麼是爆發式運算?
Burstable 層級提供專為小型資料庫工作量身打造的智慧解決方案。 透過在閒置期間提供最低的 CPU 效能,這些叢集優化資源利用率。 然而,真正的精彩之處在於它們能夠無縫擴展至完整的CPU效能,來應對增加的流量或工作負載。 這種適應性能在需要時精準發揮最佳效能,同時帶來可觀的成本節省。
透過降低服務初期價格,Azure DocumentDB 的 Burstable 叢集層級旨在以較低價格促進用戶上手與探索 Azure DocumentDB。 這種存取的民主化讓各種規模的企業都能在不花大錢的情況下善用 Azure DocumentDB 的強大功能。 無論您是新創、小型企業或企業,這個層級都開啟了更具成本效益的擴展新可能。
配置一個可爆發的分級和配置普通分級一樣簡單;你只需要在叢集層級選項中選擇「M10」、「M20」或「M25」。 這裡有一份快速入門指南,提供如何逐步設定 Azure DocumentDB 叢集的指引。