MongoDB インスタンスの成長に伴い、ディスク容量不足、急速な増加、過剰にインデックス付けされたコレクションなどのストレージ例外は、気づかないうちにサービス低下を引き起こす可能性があります。CloudDBA のストレージ分析は、ApsaraDB for MongoDB のレプリカセットインスタンスおよびシャードクラスターインスタンスのストレージ使用量の一元的なビューを提供し、例外を自動的に検出し、ダウンタイムなしで最適化を通じてディスク領域を再利用することを可能にします。
前提条件
開始する前に、以下を確認してください。
インスタンスが、サポートされているバージョンを実行しているレプリカセットまたはシャードクラスターであること。
メジャーエンジンバージョン マイナーエンジンバージョン サポート対象 MongoDB 4.0 3.0.x いいえ MongoDB 4.2 4.0.0–4.0.22 いいえ MongoDB 4.2 >= 4.0.23 はい MongoDB 4.4 5.0.0–5.0.6 いいえ MongoDB 4.4 >= 5.0.7 はい MongoDB 5.0 クラウドコンピューターのアップグレードまたはダウングレード はい MongoDB 6.0 クラウドコンピューターのアップグレードまたはダウングレード はい MongoDB 7.0 クラウドコンピューターのアップグレードまたはダウングレード はい MongoDB 8.0 クラウドコンピューターのアップグレードまたはダウングレード はい Resource Access Management (RAM) ユーザーをご利用の場合、ご利用のアカウントに Database Autonomy Service (DAS) の AliyunHDMFullAccess または AliyunHDMReadOnlyAccess 権限があることを確認してください。詳細については、「RAM ユーザーとして DAS を使用する方法」をご参照ください。
ストレージ使用量の表示
ApsaraDB for MongoDB コンソールMongoDB コンソールにログインします。
左側のナビゲーションウィンドウで、[Replica Set インスタンス] または [シャードクラスタ インスタンス] をクリックします。
ページの左上隅で、インスタンスのリソースグループとリージョンを選択します。
インスタンス ID をクリックするか、[管理] を [操作] 列でクリックします。
インスタンスの詳細ページの左側のナビゲーションウィンドウで、[CloudDBA] > [ストレージ分析] を選択します。
[ストレージの概要] タブで、以下のセクションを確認してください。
[ストレージ] — 全体的なストレージ健全性の主要メトリック:
メトリック 説明 操作 例外 検出されたストレージ例外の数。ストレージ使用量が 90% を超える場合、利用可能なストレージが 7 日以内に枯渇する可能性がある場合、または単一のコレクションに 10 を超えるインデックスがある場合に例外が発生します。 例外に迅速に対処します。未解決のストレージ枯渇は、書き込みをブロックし、インスタンスのパフォーマンスを低下させる可能性があります。 過去1週間の1日あたりの平均増加量 過去 7 日間の 1 日あたりの平均ストレージ増加量。計算式:(収集時の利用可能なストレージ − 7 日前の利用可能なストレージ) / 7。安定したトラフィックを前提とします。一括インポート、データ削除、インスタンス移行、またはインスタンスの再構築後は、値の精度が低くなります。 これを使用して、ディスク領域が不足する前に容量要件を予測し、ストレージアップグレードを計画します。 ストレージの利用可能日数 ストレージが枯渇するまでの推定日数。計算式:利用可能なストレージ / 過去 7 日間の 1 日あたりの平均増加量。90+ の値は、将来にわたってストレージが十分であることを意味します。安定したトラフィックを前提とします。 値が低い場合 (たとえば、14 日未満の場合) は、ストレージを拡張するか、データをアーカイブして空き領域を確保します。 使用済みストレージ 使用済みストレージ量と、インスタンスに割り当てられた合計ストレージ容量。 これを [例外] と合わせて監視し、全体的なストレージの健全性を把握します。 例外:検出されたストレージ例外の詳細であり、修正措置の計画に使用します。
ストレージの推移 — 過去 7 日間のストレージ使用量の推移。
[テーブルスペース] — コレクションごとのストレージの内訳。コレクション名をクリックすると、そのインデックスを表示できます。
ストレージをデータスペースごとに表示するには、[Data Space] タブをクリックします。名前空間の詳細を表示するにはデータスペース名をクリックし、インデックスを表示するにはコレクション名をクリックします。
ストレージ分析は最大 20,000 のコレクションを分析できます。結果が表示されない場合は、コレクション数がこの制限を超えているか、現在のアカウントにコレクションへのアクセス権限があるかを確認してください。再認証するには、「ストレージ分析の権限を付与」をご参照ください。
ディスクの最適化
時間の経過とともに、削除および更新操作によりコレクション内に断片化された領域が残ります。最適化によりこの領域が再利用され、ディスク効率が回復します。
最適化は隠しノードでのみ実行されます。プライマリまたはセカンダリノードを最適化するには、まず隠しノードロールに切り替えるか、compact コマンドを直接実行します。プライマリ/セカンダリ スイッチオーバーの手順については、「プライマリ/セカンダリ フェールオーバー」をご参照ください。compact を手動で実行するには、「ディスク使用率を向上させるためにインスタンスのディスクを最適化する」をご参照ください。
最適化方法の選択
自動最適化と手動最適化のどちらを選択するかは、次の表を参考にしてください。
| シナリオ | 推奨される方法 |
|---|---|
| リサイクル可能な領域が小さい多数のコレクション (それぞれ 100 GB 未満) | 自動最適化 |
| リサイクル可能な領域が大きい単一のコレクション | 手動最適化 |
| 単一のコレクションのリサイクル可能な領域が 100 GB を超える | 手動最適化 (必須 — 自動最適化はこれらのコレクションをスキップします) |
自動最適化の設定
DAS がメンテナンスウィンドウ中に断片化された領域を自動的に再利用するように、最適化計画を構成します。
DAS は、次のすべての条件を満たすコレクションに対して自動最適化を実行します。
インデックスとデータストレージの合計が 1 GB を超える
断片化率が 20% を超える
隠しノード上のすべての対象となるコレクションの合計リサイクル可能領域が、1 ラウンドあたり 100 GB を超えない
自動最適化を構成するには:
ストレージ分析ページの [テーブルスペース] セクションで、対象のコレクションを見つけ、[断片化率] 列の [リサイクル] をクリックします。
「[Recycle]」ダイアログで、メンテナンスウィンドウを含む最適化計画の設定を構成します。
[OK] をクリックします。
ディスクの手動最適化
ApsaraDB for MongoDB コンソールMongoDB コンソールにログインします。
左側のナビゲーションウィンドウで、[Replica Set インスタンス] または [シャーディングクラスターインスタンス] をクリックします。
ページの左上隅で、インスタンスのリソースグループとリージョンを選択します。
インスタンス ID をクリックするか、[管理] を [操作] 列でクリックします。
インスタンス詳細ページの左側のナビゲーションウィンドウで、[CloudDBA] > [ストレージ分析] を選択します。
[テーブルスペース] セクションで、デフラグメントするコレクションを見つけ、[再利用] 列の [断片化率] をクリックします。
「[再利用]」ダイアログで、「[断片化率が高いコレクション]」セクションに移動し、コレクションを見つけ、「[アクション]」列の[再利用]をクリックします。
[今すぐ実行] または [O&M ウィンドウで実行] を選択して、確認してください。
最適化はすぐに有効になりません。compact コマンドはバックグラウンドで実行され続けます。実際の再利用時間は、最適化されるデータのサイズによって異なります。最大 10 のコレクションを同時に最適化します。次のバッチを開始する前に、現在のバッチが完了するのを待ってください。以前のバッチがまだ実行中に新しいバッチを開始すると、タスクが失敗する可能性があります。
断片化率が低い場合、再利用される領域の量は少ない可能性があります。
コレクションのリサイクル可能領域が 100 GB を超える場合、最適化には 1 時間以上かかる場合があります。
最適化結果の検証
最適化タスクが完了後、[再分析] をクリックして、ストレージ分析結果をリフレッシュします。
最適化の効果はデータ分布に依存します。再利用された領域が予想よりも少ない場合は、最適化タスクを再度実行してください。
ストレージ分析の権限付与
ストレージ分析の結果が表示されない場合、アカウントにコレクションに対する必要な権限がない可能性があります。
アカウントを再認証するには、次のいずれかの方法を選択してください。
既存のアカウントを使用:
ストレージ分析ページの上部で、[再承認] をクリックします。
ユーザー名とパスワードを、[データベースアカウント] フィールドおよび [パスワード] フィールドに入力します。
[OK]をクリックします。
生成された権限付与コマンドの使用:
ストレージ分析ページの上部で、[再承認] をクリックします。
[データベースアカウント] と [パスワード] フィールドにユーザー名とパスワードを入力します。
[承認コマンドの生成] をクリックします。
[OK] をクリックします。
よくある質問
(Interrupted) Compaction interrupted on table:*** due to cache eviction pressure エラーの意味は何ですか?
最適化するディスクを持つインスタンスが以前のバージョンであり、スペックが低い場合に、インスタンスで compact コマンドを実行すると、大量のキャッシュデータによりインスタンスが失敗します。
別の時間を選択してタスクをリトライしてください。繰り返し失敗する場合は、サポートのためにチケットを送信してください。
API リファレンス
| 操作 | 説明 |
|---|---|
| CreateStorageAnalysisTask | 1つ以上のデータベースとコレクションの使用量の詳細をクエリするためのストレージ分析タスクを作成します。 |
| GetStorageAnalysisResult | ストレージ分析タスクのステータスと結果をクエリします。 |
次のステップ
MongoDB バージョン 4.0 より前のインスタンスについては、「ディスク使用率を向上させるためにインスタンスのディスクを最適化する」をご参照ください。
最適化の前にプライマリ/セカンダリ スイッチオーバーを実行するには、「プライマリ/セカンダリ フェールオーバー」をご参照ください。