效能

IBM Cloud® Databases for MongoDB 部署可以手動 調整為用量,或在特定資源條件下配置為 自動調整。 如果您要調整部署的效能,請先考量一些因素。

監視部署

Databases for MongoDB 部署提供與 IBM Cloud® Monitoring 服務 的整合,以基本監視部署上的資源使用情形。 會呈現許多可用的度量值 (例如磁碟用量及 IOPS),以協助您在部署上配置 自動調整。 觀察使用趨勢並配置自動調整大小以回應它們,有助於在資料庫因資源耗盡而變得不穩定之前減輕效能問題。

磁碟用量

如果您擔心 MongoDB 用於儲存資料的空間量,則可以執行一些原生 MongoDB 資料儲存體診斷,以尋找資料庫、集合及索引等項目的大小。 如果資料集的大約大小已知且固定,您可以手動調整磁碟以容納資料。 如果您的資料集在一段時間內以可預測的速率成長,您可以配置自動調整大小,以在磁碟用量達到特定臨界值時增加磁碟大小。

磁碟 I/O

Databases for MongoDB 部署上每秒輸入輸出作業數 (IOPS) 的數目受儲存磁區類型限制。 Databases for MongoDB 部署的儲存空間磁區是 Block Storage 耐久性磁區(每 GB 層級 10 IOPS)。 達到 I/O 使用率限制可能會導致資料庫回應緩慢或似乎沒有回應。 例如未最佳化的查詢、索引建置及建立新索引可能會導致 IOPS 激增,但您應用程式的正常工作負載也可能超出部署可用的 IOPS。

您可以增加磁碟空間,以增加可供部署使用的 IOPS 數目。 您也可以配置自動調整大小,以在部署的 I/O 使用率長時間達到特定飽和點時自動增加磁碟大小。

如需相關資訊,請參閱 MongoDB 文件

WiredTiger 快取記憶體

Databases for MongoDB使用 WiredTiger儲存引擎,它同時使用檔案系統記憶體快取和內部記憶體快取。 MongoDB 在從其內部快取提供資料時效能最高,在資料位於檔案系統快取時效能較低,在必須從磁碟抓取資料時效能最低。

內部快取的預設大小是 50% of (total RAM per member - 1 GB)256 MB,以較大者為準。 例如, Databases for MongoDB 部署的最小記憶體大小為每個資料成員 4096 MB,因此內部快取為 1536 MB(因為 0.5 * (4096 MB - 1024 MB) = 1536 MB

使用者無法在部署上配置內部/檔案系統快取比例,但您可以調整記憶體總量來調整內部快取,讓資料庫更有效能。 例如,如果將記憶體擴展到每個成員 5120 MB,則內部快取大小將變為 2048 MB。0.5 * (5120 MB - 1024 MB) = 2048 MB.

使用自動調整大小的另一種方法是設定記憶體,以在磁碟 I/O 使用率達到特定臨界值時進行調整。 增加記憶體會減少 MongoDB 讀取或寫入磁碟的數量,因此額外記憶體可能會支援更多快取來減輕磁碟 I/O 的壓力。

如需 WiredTiger 快取的相關資訊,請參閱 MongoDB 文件

查詢效能

MongoDB 文件具有多個查詢效能資源,包括 分析查詢效能的作法。 一旦您對查詢的執行方式有了一般構想,它們也會有 最佳化查詢的提示。

作為更進階的主題,您可以瞭解 MongoDB 如何管理查詢計劃

其他 MongoDB 監控工具

您也可以利用部分原生 MongoDB 監視功能。 例如,您可以同時使用 mongotopmongostat

mongotop 30 --username admin --password $PASSWORD --tls --tlsCAFile $CERTFILE --authenticationDatabase admin --host host1.databases.appdomain.cloud:31712, host2.databases.appdomain.cloud:31712

mongostat -n 20 1 --username admin --password $PASSWORD --tls --tlsCAFile $CERTFILE --authenticationDatabase admin --host host1.databases.appdomain.cloud:31712,host2.databases.appdomain.cloud:31712 --json

執行任何 記載的指令,這些指令會報告 MongoDB 資料庫的狀態。

許多 MongoDB 公用程式和指令都需要 群集監控角色才能執行。 它不是 admin 預設角色集的一部分。 將部署上的 授與叢集監視者角色admin 使用者。

如需相關資訊,請參閱 Best Practices 部落格文章