共用方式為


Azure DocumentDB 的計算與儲存體組態

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 資料庫工作集,請考慮以下元件:

  1. 經常存取的資料:這些資料包含應用程式會定期閱讀或更新的文件。
  2. 索引:用於查詢操作的索引也屬於工作集,因為它們需要載入記憶體以確保快速存取。
  3. 應用程式使用模式:分析應用程式的使用模式,有助於找出哪些資料部分被最常被存取。

透過將工作集保留在 RAM 中,你可以減少較慢的磁碟 I/O 操作,從而提升 MongoDB 資料庫的效能。 如果你的工作集超過可用 RAM,可以考慮優化資料模型、增加叢集記憶體,或使用分片技術將資料分散到多個節點。

根據工作負載選擇最佳配置

決定適合您 Azure DocumentDB 工作負載的計算與儲存配置,需評估多項與應用需求與使用模式相關的因素。 決定最佳配置的關鍵步驟與考量包括:

  1. 了解你的工作量

    • 資料量:估算資料的總大小,包括索引。
    • 讀寫比率:確定讀取操作與寫入操作的比例。
    • 查詢模式:分析你的應用程式執行的查詢類型。 例如,簡單的讀取,複雜的彙整。
    • 並行性:評估你的資料庫需要處理多少同時進行的操作。
  2. 監控目前的表現

    • 資源使用率:在遷移工作負載到 Azure 之前,使用監控工具追蹤 CPU、記憶體、磁碟 I/O 和網路使用情況。 在將 MongoDB 工作負載部署到 Azure DocumentDB 叢集後,繼續使用 Azure 監控指標來監控。
    • 效能指標:監控關鍵效能指標,如延遲、吞吐量及快取點擊率。
    • 瓶頸:找出任何現有的效能瓶頸,例如高 CPU 使用率、記憶體壓力或硬碟 I/O 緩慢。
  3. 估算資源需求

    • 記憶體:確保 你的工作集 (經常存取的資料和索引)能放進 RAM。 如果你的工作集大小超過可用記憶體,可以考慮增加 RAM 或優化資料模型。
    • CPU:選擇能處理查詢負載與並行需求的 CPU 配置。 CPU 密集型工作負載可能需要更多核心。 在你的 Azure DocumentDB 叢集上使用「CPU 百分比」指標搭配「最大」彙整,查看歷史計算使用模式。
    • 儲存 IOPS:選擇有足夠 IOPS 來處理讀寫操作的儲存空間。 在叢集上使用「IOPS」指標搭配「Max」彙整,查看過去的儲存 IOPS 使用情況。
    • 網路:確保有足夠的網路頻寬來處理應用程式與資料庫之間的資料傳輸,特別是針對分散式架構。 請確保你的 MongoDB 應用程式的主機已配置為支援 加速網路 技術,例如 SR-IOV。
  4. 適當比例

    • 垂直擴展:可放大計算/記憶體,並放大儲存空間。
      • 運算:如果你的工作負載需要暫時增加,或經常長時間超過 70% CPU 使用率,請增加叢集的 vCore / RAM。
      • 確保你的 Azure DocumentDB 資料庫有適當的資料保留。 保留能讓你避免不必要的儲存使用。 透過設定「儲存百分比」和/或「使用儲存空間」指標的 警示 ,並以「最大」彙整來監控儲存使用情況。 當你的工作負載超過70% 使用時,考慮增加儲存空間。
    • 水平擴展:考慮使用多個分片來分散資料到多個 Azure DocumentDB 節點,以提升效能並提升容量管理,隨著工作負載增加。 這種擴展對於大型資料集(超過 2-4 TiB)及高吞吐量應用特別有用。
  5. 測試與迭代

    • 基準測試:對最常用且配置不同的查詢進行測量,以判斷其對效能的影響。 使用 CPU/RAM 和 IOPS 指標,以及應用程式層級的基準測試。
    • 負載測試:進行負載測試以模擬生產工作負載並驗證所選配置的效能。
    • 持續監控:持續監控您的 Azure DocumentDB 部署,並根據工作負載與使用模式的變化調整資源。

透過系統性評估這些因素,並持續監控與調整配置,您可以確保 MongoDB 部署能針對您的特定工作負載進行最佳化。

儲存考量

決定適合您工作負載的儲存容量需考慮多項考量,以確保最佳效能與可擴展性。 以下是關於 Azure DocumentDB 儲存容量的考量:

  1. 估計資料大小:

    • 計算你的 Azure DocumentDB 資料預期大小。 請考慮:
      • 目前資料大小: 如果是從現有資料庫遷移過來。
      • 成長率: 估算隨時間會新增多少資料。
      • 文件大小與結構: 了解你的資料結構和文件大小,因為它們會影響儲存效率。
  2. 影響索引的因素:

    • Azure DocumentDB 使用 索引 來進行有效率的查詢。 索引會消耗額外的磁碟空間。
    • 根據以下條件估算指數規模:
      • 索引數量
      • 索引欄位的大小
  3. 效能考量:

    • 磁碟效能會影響資料庫操作,尤其是對於無法將 工作集 放入 RAM 的工作負載。 請考慮:
      • 輸入輸出吞吐量: IOPS,即每秒輸入/輸出操作數,是指每秒內傳送到儲存磁碟的請求數量。 更大的儲存空間帶來更多的 IOPS。 確保讀寫操作有足夠的吞吐量。 使用「IOPS」指標搭配「Max」彙整來監控叢集上的 IOPS 使用情況。
      • 延遲: 延遲是指應用程式接收單一請求、將其傳送到儲存磁碟,並將回應傳送給用戶端所需的時間。 延遲除了 IOPS 和吞吐量外,也是衡量應用程式效能的重要指標。 所使用的儲存類型與儲存配置在很大程度上決定了延遲。 在像 Azure DocumentDB 這樣的託管服務中,快速儲存裝置如高級 SSD 硬碟會被優化為降低延遲。
  4. 未來成長與可擴展性:

    • 規劃未來資料成長與擴展需求。
    • 在不頻繁擴充儲存空間的情況下,分配超出現有需求的磁碟空間。
  5. 範例計算

    • 假設你的初始資料大小是 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 叢集的指引。