Sun Java System Application Server Enterprise Edition 8.2 パフォーマンスチューニングガイド

Survivor 領域の比率の設定

SurvivorRatio パラメータは、2 つの Survivor 領域のサイズを制御します。たとえば -XX:SurvivorRatio=6 と設定すると、各 Survivor 領域と Eden 領域の比率は 1:6 になり、それぞれの Survivor 領域のサイズは若い世代全体の 8 分の 1 になります。Solaris のデフォルトは 32 です。Survivor 領域が小さすぎると、コピーコレクションがオーバーフローし、その分が直ちに古い世代に送られてしまいます。Survivor 領域が大きすぎると、無意味になります。GC のたびに、JVM は、寿命の長い (tenured) 世代に送るまでにオブジェクトをコピーできる回数 (tenure しきい値と呼ばれる) を判断します。このしきい値は、Survivor 領域の使用量が半分に維持されるように選択されます。

このしきい値と、新しい世代のオブジェクトのコピー回数を表示するには、-XX:+PrintTenuringDistribution オプションを使用します。これは、アプリケーションの生存期間の分布を観測するのに役立ちます。