2011-12-22 19 views
2

をのpid:説明は私が上にこれで私のcatalina.shを修正

export CATALINA_OPTS="-Xms512m -Xmx1500m" 

私は自分のサーバー上で4GBのRAMを持っている、と私はすべてのものを与えたいと思うので、私は負荷テストしていますあまり風邪をひいて。

1秒あたりのリクエストを最大限にするために、他のJVM設定を調整する必要がありますか?

PerMemも重要ですか?

私は以下のjmap出力について少し混乱しています。

私はXmxを1500megsに設定しました。これは、 'maxheapsize'が1500mと表示されているように更新されたようです。

しかし、私は使用したヒープの量と無料の量をどこに示していますか?

ヒープ使用量は63MB(eden)ですが、それは何ですか?

enter image description here

答えて

1

ホットスポット(太陽を読む)ヒープは、あなたが-Xmxを指定するときに、あなたが本当にそれの一部ヒープ全体の最大値を設定し、されていない、いくつかの部分に分割されます。

エデンはヒープ全体の一部であり、アプリケーションがコレクション中に長時間停止しないように小さく保たれています。すべての新しいオブジェクト(それに当てはまる)は、まずはエデンに移り、ごみでなければ、生存者のスペースまたはテニュアに昇進させます。

サバイバー(To/Fromスペース)はGCがゴミである可能性があるオブジェクトを取得しようとするが、エデンコレクション中にすぐには処理できない場所です。バッファとして機能する2つの生き残りスペースがあります。 1つはGCで満たされ、もう1つは保有期間に入っています。グラフを見る場合は、2つのスペースが使い方で反転して表示されます。

Tenureはオブジェクトの存続期間が長いため、通常は非常に大きく、edenとは異なるアルゴリズムで収集されます。

Permは、ヒープの残りの部分とやや離れています。これは、定数文字列( "interned"された文字列)とクラスバイトコードがどこにあるかです。チューニングが必要な場合は非常にまれですが、一般的に膨大なアプリケーションやコードを自動的に生成するアプリケーションの場合にのみ増やす必要があります。

休止時間なしJVM設定が正しいかどうかは本当に言えませんが、ヒープサイズから約1.2Gbの割り当てを使用しているようです。アプリケーションで不快な一時停止が発生している場合を除き、私はGCチューニングが完了したと思うでしょう(人々はしばしば彼らが何をしているのか理解せずに多数の旗の町に行きます。

Webアプリケーションで待ち時間が短くなるため、テナントコレクタとしてのConcurrentMarkSweepの使用が適切です。

関連する問題