2

JDK 1.6.0_24、JBoss 4.3 で実行されている JBoss アプリケーション サーバーを備えた実稼働システムがあります。ときどきサーバーがクラッシュし、JVM によって作成されたダンプ ファイルの結果は一貫しています。

{Heap before GC invocations=6421 (full 4675):
  PSYoungGen      total 521536K, used 518784K [0xdbc00000, 0xfbc00000, 0xfbc00000)
  eden space 518784K, 100% used [0xdbc00000,0xfb6a0000,0xfb6a0000)
  
  from space 2752K, 0% used [0xfb950000,0xfb950000,0xfbc00000)
  to   space 2752K, 0% used [0xfb6a0000,0xfb6a0000,0xfb950000)
    
 PSOldGen        total 1572864K, used 1572855K [0x7bc00000, 0xdbc00000, 0xdbc00000)
  object space 1572864K, 99% used [0x7bc00000,0xdbbfdeb8,0xdbc00000)
 PSPermGen       total 524288K, used 92683K [0x5bc00000, 0x7bc00000, 0x7bc00000)
  object space 524288K, 17% used [0x5bc00000,0x61682c30,0x7bc00000)
81507.318: [Full GC [PSYoungGen: 518784K->518784K(521536K)] [PSOldGen: 1572855K->1572855K(1572864K)] 2091639K->2091639K(2094400K) [PSPermGen: 92683K->92683K(524288K)], 1.5334976 secs] [Times: user=1.53 sys=0.00, real=1.53 secs] 
Heap after GC invocations=6421 (full 4675):
 PSYoungGen      total 521536K, used 518784K [0xdbc00000, 0xfbc00000, 0xfbc00000)
  eden space 518784K, 100% used [0xdbc00000,0xfb6a0000,0xfb6a0000)
  from space 2752K, 0% used [0xfb950000,0xfb950000,0xfbc00000)
  to   space 2752K, 0% used [0xfb6a0000,0xfb6a0000,0xfb950000)
 PSOldGen        total 1572864K, used 1572855K [0x7bc00000, 0xdbc00000, 0xdbc00000)
  object space 1572864K, 99% used [0x7bc00000,0xdbbfdeb8,0xdbc00000)
 PSPermGen       total 524288K, used 92683K [0x5bc00000, 0x7bc00000, 0x7bc00000)
  object space 524288K, 17% used [0x5bc00000,0x61682c30,0x7bc00000)
}

JAVA_OPTS の場合、次のものがあります。

-サーバ

-Xms2048m

-Xmx2048m

-Dsun.rmi.dgc.client.gcInterval=3600000

-Dsun.rmi.dgc.server.gcInterval=3600000

-Dsun.lang.ClassLoader.allowArraySyntax=true

-XX:NewSize=512m

-XX:MaxNewSize=512m

-XX:PermSize=512m

-XX:MaxPermSize=512m

-verbosegc

-XX:+PrintGCDetails

-XX:+PrintGCTimeStamps

-XX:+PrintHeapAtGC

-XX:+CMSPermGenSweepingEnabled

-XX:-TraceClassLoading

-XX:-TraceClassUnloading

ということで、2GBあれば十分という感じで、メモリも余っているので問題ないと思います。

助言がありますか?

4

2 に答える 2

2

メモリが不足しています。ヒープ サイズを 2G に設定し、若い世代は 500M、古い世代は 1500M で、使用できる最大 2G を満たします (サバイバー スペースは空ですが少なく、おそらく小さすぎて Eden スペースからオブジェクトを取得できません。

最大ヒープ サイズを増やしてみてください。それでも問題が解決しない場合は、メモリ使用量を監視して、メモリ使用量が既に高い状態で、リークや新しいオブジェクトを要求しすぎているプロセスがないかどうかを確認する必要があります。

于 2012-08-15T16:23:05.633 に答える
0

Xmx 値を増やします。~100% の OldGen では、エデン スペース オブジェクトがスピルオーバーする場所はありません。

JConsoleなどを使用して、問題のあるアプリケーションの PID に接続し、JVM のメモリ使用量を監視することを検討してください。これは、JBoss との特定の対話が原因でヒープがいっぱいになっているかどうか、または遅いメモリ リークであるかどうかを判断するのに役立ちます。

于 2012-08-15T20:09:49.913 に答える