パフォーマンス
第2世代
IBM Cloud® Databases for MongoDB 導入規模は、ご利用状況に合わせて手動で調整可能です。 デプロイメントのパフォーマンスを調整する場合は、まずいくつかの要素を考慮してください。
デプロイメントのモニタリング
Databases for MongoDB デプロイメントでは、 IBM Cloud® Monitoring サービス との連携機能を提供しており、デプロイメントのディスク使用量やIOPSなど、リソース使用状況の基本的な監視が可能です。 使用状況の傾向を把握しておくことで、リソースの枯渇によってデータベースが不安定になる前に、パフォーマンスの問題を未然に防ぐことができます。
ディスク使用
MongoDB がデータの保存にどれだけの容量を使用しているか気になる場合は、 MongoDB のネイティブ機能 であるデータストレージ診断を実行して、データベース、コレクション、インデックスなどのサイズを確認することができます。 データ・セットのおおよそのサイズが既知で固定である場合は、データに合わせてディスクを手動でスケーリングできます。
ディスク入出力
Databases for MongoDB のデプロイメントの IOPS (1 秒あたりの入出力操作数) の数値は、ストレージ・ボリュームのタイプによって制限されます。 Databases for MongoDB の展開におけるストレージボリュームは、 1 GBあたり5 IOPSの階層に属するブロックストレージの耐久性ボリュームです。 入出力使用制限に達すると、データベースの応答が遅くなったり、無応答のように見えたりすることがあります。 最適化されていないクエリ、 インデックスの構築、および新しいインデックスの作成は、IOPSの急上昇を引き起こす可能性があります。 通常のアプリケーションのワークロードでも、デプロイメントで利用可能なIOPSを上回る場合があります。
ディスク・スペースを大きくすることによって、デプロイメントで使用できる IOPS 数を増やすことができます。
詳細については、『 MongoDB 』のドキュメントを参照してください。
WiredTiger のキャッシュおよびメモリー
Databases for MongoDBWiredTiger ストレージエンジンを使用しており、このエンジンはファイルシステムのメモリキャッシュと内部メモリキャッシュの両方を利用します。 MongoDB のパフォーマンスは、内部キャッシュからデータを提供する場合に最も高くなり、データがファイル・システム・キャッシュ内にある場合は少し低くなり、ディスクからデータを取得しなければならない場合は最も低くなります。
内部キャッシュのデフォルトサイズは、 50% of (total RAM per member - 1 GB) または 256 MB のうち、大きい方の値になります。 たとえば、 Databases for MongoDB のデプロイにおける最小メモリサイズはデータメンバー1つあたり4096 MBであるため、内部キャッシュは1536 MBとなります( 0.5 * (4096 MB - 1024 MB) = 1536 MB であるため)。
内部/ファイル・システムのキャッシュの割合をユーザーがデプロイメントに構成することはできませんが、データベースのパフォーマンスが高くなるように、メモリーの総量をスケーリングして内部キャッシュを調整することはできます。 たとえば、メンバー1人あたりのメモリを5120 MBにスケールアップすると、内部キャッシュのサイズは2048 MBになります。 0.5 * (5120 MB - 1024 MB) = 2048 MB.
自動スケーリングを使用するもう 1 つの方法は、ディスク入出力の使用率が特定のしきい値に達したときにスケーリングするようにメモリーを設定することです。 メモリーを増やすと、MongoDB がディスクに対して読み書きを行う量が減るので、メモリーを追加してより多くのキャッシュをサポートすることで、ディスク入出力の負荷を軽減できる可能性があります。
WiredTiger キャッシュに関する詳細については、『 MongoDB 』のドキュメントを参照してください。
照会のパフォーマンス
MongoDB のドキュメントには、クエリのパフォーマンスに関するさまざまなリソースが掲載されており、 その中にはクエリのパフォーマンスを分析する方法に関するガイドも含まれています。 クエリのパフォーマンスについて大まかな把握ができたら、 クエリを最適化するためのヒントも掲載されています。
より高度なトピックとして、 MongoDB クエリプランを管理する の使い方を学ぶことができます。
MongoDB のその他のモニタリング・ツール
MongoDB のネイティブのモニタリング機能の一部を利用することもできます。 たとえば、 mongotop と mongostatの両方を使用できます。
MongoDB データベースの状態を報告する、 ドキュメントに記載されているコマンドのいずれかを実行してください。
MongoDB のユーティリティやコマンドの多くは、実行するために「 クラスタ・モニター 」ロールが必要です。 これは、 manager のデフォルトのロールセットには含まれていません。 デプロイメント上の「
manager 」ユーザーに 「Cluster Monitor」ロールを付与してください。