ガーベージ・コレクターの構成
使用しなくなったデータをメモリーから削除するには、ガーベージ・コレクター(GC)を選択し構成します。
ガーベージ・コレクションは、Javaプロセス(ガーベージ・コレクター)によって実行されます。ガーベージ・コレクションを実行すると、必要なくなったデータがメモリーから削除されます。最良のパフォーマンスを得るため、ガーベージ・ファースト(G1)または連続マーク・スイープ(CMS)のいずれかを使用してください。DataStax Enterpriseでデフォルトで使用されるのはガーベージ・ファースト(G1)です。
G1オプションとCMSオプションの基本的な違いは次のとおりです。
- G1では、ヒープが複数のリージョンに分割します。リージョン数はヒープ・サイズとヒープ・リージョンのサイズによって異なります。次に、実行中のワークロードに基づき、リージョンを旧世代または新世代に動的に割り当てます。ガーベージ・コレクションが優先的に行われる場所は、コレクションの際に空き領域が最大化されるヒープ領域です。また、G1では実行時にトレードオフが生じ、一時停止ターゲット(
-XX:MaxGCPauseMillis
を使用して構成可能)に対して最適化され、予測可能なパフォーマンスを発揮します。 - CMSでは、ヒープが新世代(Eden + サバイバー領域)、旧世代、Permanent世代にのみ分割され、さまざまなヒューリスティクスおよび構成可能な設定を利用してパフォーマンスが最適化されます。
G1の利点
DataStaxでは、次の理由からCMSよりもG1をお勧めしています。- G1では、大きなヒープ・サイズ(24~96 GB)がサポートされており、調整が不要です。DataStax Enterprise(DSE)システム(特に、Search、Analytics、またはGraphワークロードを含むシステム)に大きなヒープを実行するための十分なRAMがあります。
- G1では、動的なワークロードをCMSよりも効率よく処理できます。DSEシステムでは、読み取り、書き込み、コンパクション、検索インデックス、解析のための範囲読み取りなどの複数のワークロードがあります。
- CMSはJava 9で廃止される予定です。
- G1は構成が簡単です。使用するパラメーターは
MAX_HEAP_SIZE
と-XX:MaxGCPauseMillis
のみです。