2

Oracle JVM で Java コードを実行しようとしていますが、java.lang.OutOfMemoryError が発生します。

そのため、Oracle JVM により多くのメモリを割り当てたいと考えています。どうすればいいですか?

前もって感謝します。

4

3 に答える 3

5

OJVM のヒープ サイズを超えているようです。

まず、現在利用可能なヒープ サイズの合計を確認する必要があります。初期化パラメータを見てくださいJAVA_POOL_SIZE。0 の場合、自動メモリ管理 (10g または 11g) を使用しており、ヒープ サイズは Oracle サーバーによって「自動的に」決定されます。次に、sga_target(10g) またはmemory_target(11g) を上限として使用できます。

セッションごとの最大ヒープ サイズは、パラメータによって制限されますjava_max_sessionspace_size(値 0 は、デフォルトの 4GB を意味します)。

これら 2 つの値を手元に置いて、小さい方の値を取得し、コードに起因するメモリ要件/ヒープ サイズがこのメモリ量に収まるかどうかを確認します。

  • はいの場合: Java コードにメモリ リークがあります。
  • java_pool_sizeそうでない場合: 、sga_target/memory_targetまたは のいずれかを増やしますjava_max_sessionspace_size

http://docs.oracle.com/cd/B28359_01/java.111/b31225/chnine.htm#BABGFDAE (Java メモリ使用量) およびhttp://docs.oracle.com/cd/B28359_01/server.111/を参照してください。詳細なドキュメントについては、 b28320/initparams099.htm#REFRN10074 + http://docs.oracle.com/cd/B28359_01/server.111/b28320/initparams100.htm#REFRN10075 (パラメータ)。

また、件名の「Oracle JVMに割り当てられたメモリを表示する方法」という質問について:

select * from v$sgastat where pool = 'java pool';
于 2012-07-12T12:54:23.567 に答える
0

http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html、具体的には -XX:MaxHeapFreeRatio および -XX:MinHeapFreeRatioを使用できます

于 2012-07-12T11:23:19.203 に答える