0

自動スケーリング用に最小インスタンス数1と最大インスタンス数2のJavaWebアプリケーションをElasticBeanstalkにデプロイしました。使用しているカスタムAMIは、SunJDK6を使用するc1.mediumです。

環境ステータスが黄色、次に赤色に変わりました。スナップショットログからログファイルをチェックインした後、例外が見つかりました-原因:java.lang.OutOfMemoryError:Javaヒープスペース。これが環境障害の考えられる理由の1つである可能性があると想定します。環境コンテナオプションで構成した設定は次のとおりです。

初期JVMヒープサイズ(MB)-256M

最大JVMヒープサイズ(MB)-512m-Xmxを使用してJVM起動コマンドラインで指定された、Java仮想マシンがこれまでに消費する最大ヒープサイズ。

最大JVM永続生成サイズ(MB)-512m

ヒープサイズを512mからそれ以上に増やす必要がありますか、それとも問題ありません。

4

1 に答える 1

1

JVMの最大永続生成サイズが大きすぎると思います。AWSのドキュメントは次のとおりです。

JVMオプション

Java仮想マシンのヒープサイズは、ガベージコレクション(アプリケーションのメモリを管理するプロセス)が発生する前に、メモリ内に作成できるオブジェクトの数に影響します。初期ヒープサイズと最大ヒープサイズを指定できます。初期ヒープサイズを大きくすると、ガベージコレクションが発生する前により多くのオブジェクトを作成できますが、ガベージコレクターがヒープを圧縮するのに時間がかかることも意味します。最大ヒープサイズは、大量のアクティビティ中にヒープを拡張するときにJVMが割り当てることができるメモリの最大量を指定します。

[構成の編集]ウィンドウで、[初期JVMヒープサイズ(MB)]ボックスと[最大JVMヒープサイズ(MB)]ボックスを使用して、初期および最大JVMヒープサイズを設定できます。使用可能なメモリは、AmazonEC2インスタンスタイプによって異なります。AWS ElasticBeanstalk環境で使用可能なAmazonEC2インスタンスタイプの詳細については、AmazonEC2ユーザーガイドの「インスタンスファミリーとタイプ」を参照してください。

永続的な生成は、クラス定義と関連するメタデータを格納するために使用されるJVMヒープのセクションです。永続世代のサイズを変更するには、[最大JVM永続世代サイズ(MB)]ボックスに新しいサイズを入力します

このRimuhostingのハウツー記事は、Xmxの設定を説明するのに非常に優れていることがわかりました。

于 2012-06-23T09:12:32.950 に答える