データストア未使用のファイルを削除するには、ガベージコレクションを使用します。CRX は jackrabbit データストアをサポートします。http://wiki.apache.org/jackrabbit/DataStore を参照してください。デフォルトでは、CRX はファイルデータストアを使用しますが、DB データストアもサポートされています。

ガベージコレクションを実行するには:

  • 管理者としてログイン
  • CRX コンソールで、「リポジトリ設定」をクリック
  • データストアガベージコレクション」をクリック
  • 必要に応じて、次のオプションを選択します。
オプション 説明
メモリのガベージコレクションを最初に実行します。 メインメモリのガベージコレクションを最初に実行します(ヒープガベージコレクションとも呼ばれます)。このプロセスは、メインメモリにまだ存在していても参照されていないオブジェクトを排除します。データストアのガベージコレクションでは、メインメモリに存在しない項目のみが回収されます。
未使用項目を削除 このオプションを選択すると、使用されていないファイルがデータストアから削除されます。このオプションが無効になっている場合、使用した項目の最後に変更された日付のみが更新されますが、ファイルは削除されません複数の独立したリポジトリがデータストアを共有する場合や、複数の異なるクラスターがデータストアを共有している場合は、このオプションを有効にしないでください。古いアイテムを手動で削除することも、スクリプトを使用することもできます。(例えば、各リポジトリ上でデータストアのガベージコレクションを実行した後、1週間以上古いファイルを削除します)。クラスターは1つのリポジトリです。リポジトリを共有する複数のクラスターインスタンスを使用する場合は、「未使用項目を削除」を有効にすることができます。
永続性マネージャースキャンを使用する。 このオプションが有効なときに、永続性マネージャーがこのオプションをサポートしている場合、プロセスでは低レベルの永続性マネージャーが使用されます。このオプションを選択すると、ガベージコレクションの処理が高速化されますが、同時操作の速度が低下する場合があります。このオプションが無効になっている場合、上位レベルのノード移動アルゴリズムを使用します。
  • 「実行」をクリックします。

クラスタ環境内のガベージコレクション

共有データストア

CRX クラスターを使用する場合、データストアのガベージコレクションを任意のクラスターノードから実行できます。

クラスターデータストア

クラスターデータストア(データストア設定オプション ClusterDataStore)を使用する場合は、すべてのクラスターノードでガベージコレクションを個別に実行します。

複数のリポジトリのデータストア

複数の独立したリポジトリが、同じデータストアを同時に使用する場合(例えば作成者パブリッシュインスタンス)、「削除オプション」を使用しない。代わりに、手順は次のとおりです。

  • データストアのバックアップを作成します。
  • CRX に管理者としてログインします。
  • オプションのいずれもオンにせずに(特に「未使用のアイテムの削除」が_オフ_になっていることを確認します。)
    データストアのガベージコレクションを実行します。
  • 5日以内に、データストアを共有する_全ての_リポジトリで実行します。遅延を0に設定することはできます。ただしファイルシステム読み込みが増加します。また、すべてのリポジトリで同時にプロセスを実行することもできますが、そのデータストアを含むファイルシステムでは I/O が増加します。この処理が終わった後、データストアファイルは、新たに最終更新日が設定されています。
  • プロセスが5日間よりも時間がかかる場合、削除する日数を増やしてください。(デフォルトでは7)。アドビは2日間のマージンを使用することをお勧めします。
  • 次のようなコマンドラインを使用し、7日間以上古いファイルを一覧表示するためには::
    find repository/datastore/* -mtime +7 -type f
  • このコマンドは保存することができるバイト数を出力します。
    find repository/datastore/* -mtime +7 -type f -exec ls -l {} \; | awk '{ s+=$5 } END { print s }'
  • 次のコマンドラインを使用して、7日以上古いすべてのファイルを削除します。警告:最終日までにデータストアのガベージコレクションが実行されなかった場合は、まだ必要なファイルが削除されてしまいます。
    find repository/datastore/* -mtime +7 -type f -exec rm {} \;

アプリケーション内でのガベージコレクションの開始

ガベージコレクションを手動で実行するには、次のコードを使用します。

GarbageCollector gc; SessionImpl si = (SessionImpl)session; gc = si.createDataStoreGarbageCollector(); // オプション(プログレスバー/出力を実装したい場合):
gc.setScanEventListener(this); gc.scan(); gc.stopScan(); // 複数のリポジトリが同じデータストアを使用している場合は、別のボタンの可能性があります。gc.deleteUnused(); CQ5.5以降(crx2.3.15か、それ以降に適用します)からのデータストアガベージコレクションの変更点

CQ5.5以降、リポジトリを提供する CRX は OSGi サービスです。CRX は、OSGi サービスレジストリに MBean サービスとして登録されています。この MBean は、データストアのガベージコレクションの属性と操作を公開する JMX コンソールで使用できます。

  • データストアのガベージコレクションを実行する UI は http://<host>:<port>/system/console/jmx/com.adobe.granite%3Atype%3DRepository
  • 新しい UI には、「未使用項目を削除」オプション1つしかありません。このオプションは、ユースケースに基づいて「true」または「false」に設定できます。オプションが「false」に設定されている curl コマンドの例は [1].
  • その他のオプション
    • 「最初にメモリガベージコレクションを実行」は、データストアガベージコレクション UI の一部ではなく、http://<host>:<port>/system/console/memoryusage.で使用できます。
    • 「永続性マネージャースキャンの使用」が削除されました。
    • 「メモリガベージコレクションを最初に実行」は http://<host>:<port>/system/console/memoryusage に移動されました。
    • デフォルトの遅延時間は10に設定されます。  変更の場合は、Bean プロパティ「dataStoreGarbageCollectionDelay」を変更します。15に設定される curl コマンドは [2] に表示されます。

[1] curl -u admin:admin -X POST --data delete=false -H "Referer: http://<host>:<port>/system/console/jmx/com.adobe.granite%3Atype%3DRepository" http://<host>:<port>/system/console/jmx/com.adobe.granite%3Atype%3DRepository/op/runDataStoreGarbageCollection/java.lang.Boolean

[2] curl -u admin:admin -X POST --data value=15 -H "Referer: http://<host>:<port>/system/console/jmx/com.adobe.granite%3Atype%3DRepository" http://<host>:<port>/system/console/jmx/com.adobe.granite%3Atype%3DRepository/a/DataStoreGarbageCollectionDelay

注意:

AEM 5.6.1 (CRX 2.4.30+)

新規作成された高速データストアのガベージコレクションは5.6.1で実行されました。現在はデフォルトで使用できるようになりました(runDataStoreGarbageCollection)。  データストアのガベージコレクションの古いメソッドを実行するには、最適化された TarPM ガベージコレクションの使用を回避して、データストアのガベージコレクションを実行する「runDataStoreClassicGarbageCollection」を使用します。 

  • 「高速」のガベージコレクション(runDataStoreGarbageCollection)を実行している場合は、5.6.1 Hotfix 3241(パッケージ共有の URL と README ファイルについては以下を参照してください)をインストールするまで(stopDataStoreGarbageCollection)の使用を停止しないようにしてください。

ここをクリックして、パッケージ共有から Hotfix 3241 をダウンロードします。

* cq-5.6.1-hotfix-3421-readme.txt
hot fix 3421の「ReadMe」

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー