3

マイナーGC一時停止時間の増加が発生しています。このアプリケーションはJavaで記述されたサーバーであり、1秒あたり500トランザクションを実行します。CMS収集後、一時停止時間は減少しますが、実行時間の後に一時停止時間は再び増加します。vmstatでスワップの使用状況を確認しましたが、スワップの入出力はありません。

マイナーgc一時停止時間が増加する理由として考えられるものは何ですか?

これがgcログファイルの一部ですが、マイナーなgc一時停止時間は短いです:(0.01秒)

{GC呼び出し前のヒープ=123(完全な0):
 新世代の合計306688K、使用済み275101K [0xfffffffe80010000、0xfffffffe94cd0000、0xfffffffe94cd0000)
  eden space 272640K、100%使用[0xfffffffe80010000、0xfffffffe90a50000、0xfffffffe90a50000)
  スペース34048Kから、7%使用[0xfffffffe92b90000、0xfffffffe92df7718、0xfffffffe94cd0000)
  スペース34048K、0%使用[0xfffffffe90a50000、0xfffffffe90a50000、0xfffffffe92b90000)
 同時マークスイープ生成合計3243264K、使用済み71097K [0xfffffffe94cd0000、0xffffffff5ac10000、0xffffffff5ac10000)
 コンカレントマークスイープパーマ生成合計262144K、使用30336K [0xffffffff5ac10000、0xffffffff6ac10000、0xffffffff6ac10000)
2012-07-29T20:00:19.790 + 0300:472.781:[GC 472.782:[ParNew
望ましいサバイバーサイズ17432576バイト、新しいしきい値4(最大4)
-年齢1:1068432バイト、合計1068432
-年齢2:296272バイト、合計1364704
-年齢3:68624バイト、合計1433328
-4歳:53776バイト、合計1487104
:275101K-> 2187K(306688K)、0.0111305秒] 346199K-> 73301K(3549952K)、0.0127033秒] [時間:ユーザー= 0.13 sys = 0.01、実数=0.01秒]
GC呼び出し後のヒープ=124(完全な0):
 新世代の合計306688K、使用済み2187K [0xfffffffe80010000、0xfffffffe94cd0000、0xfffffffe94cd0000)
  eden space 272640K、0%使用済み[0xfffffffe80010000、0xfffffffe80010000、0xfffffffe90a50000)
  スペース34048Kから、6%使用[0xfffffffe90a50000、0xfffffffe90c72dc0、0xfffffffe92b90000)
  スペース34048K、0%使用[0xfffffffe92b90000、0xfffffffe92b90000、0xfffffffe94cd0000)
 同時マークスイープ生成合計3243264K、使用済み71114K [0xfffffffe94cd0000、0xffffffff5ac10000、0xffffffff5ac10000)
 コンカレントマークスイープパーマ生成合計262144K、使用30336K [0xffffffff5ac10000、0xffffffff6ac10000、0xffffffff6ac10000)
}

以下は、マイナーなgc一時停止時間が長い間のgcログファイルの一部です:(0.9秒)

{GC呼び出し前のヒープ=38526(フル3):
 新世代の合計306688K、使用済み280310K [0xfffffffe80010000、0xfffffffe94cd0000、0xfffffffe94cd0000)
  eden space 272640K、100%使用[0xfffffffe80010000、0xfffffffe90a50000、0xfffffffe90a50000)
  スペース34048Kから、22%使用[0xfffffffe90a50000、0xfffffffe911cda60、0xfffffffe92b90000)
  スペース34048K、0%使用[0xfffffffe92b90000、0xfffffffe92b90000、0xfffffffe94cd0000)
 同時マークスイープ生成合計3243264K、使用1023755K [0xfffffffe94cd0000、0xffffffff5ac10000、0xffffffff5ac10000)
 コンカレントマークスイープパーマ生成合計262144K、使用済み34997K [0xffffffff5ac10000、0xffffffff6ac10000、0xffffffff6ac10000)
2012-07-31T13:21:46.709 + 0300:149360.928:[GC 149360.930:[ParNew
望ましいサバイバーサイズ17432576バイト、新しいしきい値4(最大4)
-年齢1:1794816バイト、合計1794816
-年齢2:2864408バイト、合計4659224
-年齢3:72672バイト、合計4731896
-4歳:86160バイト、合計4818056
:280310K-> 7605K(306688K)、0.9073290秒] 1304066K-> 1031418K(3549952K)、0.9100161秒] [時間:ユーザー= 9.34 sys = 0.15、実数=0.91秒]
GC呼び出し後のヒープ=38527(フル3):
 新世代の合計306688K、使用済み7605K [0xfffffffe80010000、0xfffffffe94cd0000、0xfffffffe94cd0000)
  eden space 272640K、0%使用済み[0xfffffffe80010000、0xfffffffe80010000、0xfffffffe90a50000)
  スペース34048Kから、22%が使用[0xfffffffe92b90000、0xfffffffe932fd490、0xfffffffe94cd0000)
  スペース34048K、0%使用[0xfffffffe90a50000、0xfffffffe90a50000、0xfffffffe92b90000)
 同時マークスイープ生成合計3243264K、使用1023813K [0xfffffffe94cd0000、0xffffffff5ac10000、0xffffffff5ac10000)
 コンカレントマークスイープパーマ生成合計262144K、使用済み34997K [0xffffffff5ac10000、0xffffffff6ac10000、0xffffffff6ac10000)
}

JVM引数:

-d64 -server \
-XX:+ UseParNewGC \
-XX:+ UseConcMarkSweepGC \
-Xloggc:./ logs / gc _ "$ DATE" .log -XX:+ PrintGCDetails -XX:+ PrintGCDateStamps \
-XX:+ PrintGC \
-XX:PrintCMSStatistics = 2 \
-XX:+ PrintTenuringDistribution \
-XX:+ PrintHeapAtGC \
-XX:+ PrintGCTaskTimeStamps \
-XX:PermSize = 256m -XX:MaxPermSize = 256m \
-XX:+ CMSClassUnloadingEnabled \
-XX:-OmitStackTraceInFastThrow \
-XX:ParallelGCThreads = 16 \
-XX:ParallelCMSThreads = 12 \
-Dsun.rmi.dgc.server.gcInterval = 0x7FFFFFFFFFFFFFFE -Dsun.rmi.dgc.client.gcInterval = 0x7FFFFFFFFFFFFFFE \
-Xms3500m -Xmx3500m -Xss192k
4

2 に答える 2

0

大きなエデンスペースを持つことは驚くほど安いです、高価なのは保持されているオブジェクトをコピーすることです。

あなたの短い時間であなたは保持しました(2番目のサイズ)

346199K->73301K, 0.0127033 secs

あなたの長い時間であなたははるかに多くを保持しました

1304066K->1031418K(3549952K), 0.9100161 secs

つまり、最初のケースでは、はるかに多くのデータを保持しているため、GCに時間がかかりました。

これらの場合に私が最初に試みることは、コレクションが発生する前により多くのオブジェクトが死ぬことを期待して、エデンのサイズを大きくすることです。

于 2012-08-03T08:10:28.023 に答える
0

新しいスペースはわずか300Mですが、古いスペースは3500Mですか?
新しいスペースのサイズを拡大する必要があります。
可能であれば、jvm引数を提供しますか?

于 2012-08-03T08:28:45.753 に答える