application threads were stopped for a long time

Hi, We have got the following problem.

application threads were stopped for a long time after Minor GC hava finished. Minor GC takes usally less than 1sec but a time application threads were stopped tekes often 100 sec.

What's jvm doing then? alternatively we want to get more information when Minor GC occured.

gc.log

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

33919.643: [GC 33919.643: [ParNew: 376030K->102916K(546176K), 0.1462336 secs] 1953320K->1680371K(4642176K), 0.1465861 secs]

Total time for which application threads were stopped: 0.1557298 seconds

Application time: 1.3021807 seconds

34020.827: [GC 34020.827: [ParNew: 376068K->103166K(546176K), 0.3350141 secs] 1953523K->1681429K(4642176K), 0.3353194 secs]

Total time for which application threads were stopped: 100.0714587 seconds

Application time: 1.0932169 seconds

34121.180: [GC 34121.180: [ParNew: 376318K->100333K(546176K), 0.3740967 secs] 1954581K->1680438K(4642176K), 0.3744228 secs]

Total time for which application threads were stopped: 99.2983213 seconds

Application time: 0.7258378 seconds

34122.304: [GC 34122.305: [ParNew: 373485K->115425K(546176K), 0.9584334 secs] 1953590K->1696193K(4642176K), 0.9587701 secs]

Total time for which application threads were stopped: 0.9823952 seconds

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

machine spec and jvm option

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

T2000 Solaris10 Sparc

1cpu 8core 32thread 1GHz, 8GB Memory

jvm 1.4.2_14

-d64 -server

-XX:NewSize=800m -XX:MaxNewSize=800m

-XX:SurvivorRatio=1

-XX:+DisableExplicitGC

-XX:+UseConcMarkSweepGC

-XX:+UseParNewGC

-XX:+CMSParallelRemarkEnabled

-XX:MaxPermSize=256m -XX:PermSize=256m

-XX:+UsePerfData

-verbose:gc

-XX:+PrintGCDetails -XX:+PrintGCTimeStamps

-XX:+PrintTenuringDistribution

-XX:+PrintGCApplicationStoppedTime

-XX:+PrintGCApplicationConcurrentTime

-Xloggc:/opt/local/jj/jboss/server/fujiyama/log/gc.log

-Xmx4800M -Xms4800M

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

we attempt single thread GC or set 2400M for heap memory

or -XX:UseParallelGC or set the following param

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

-XX:NewSize=1000m -XX:MaxNewSize=1000m

-XX:SurvivorRatio=6

-XX:TargetSurvivorRatio=80

-XX:MaxTenuringThreshold=20

-Xmx4000M -Xms4000M

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

but the situation wasn't improved.

[2711 byte] By [icb00001a] at [2007-11-27 3:41:22]
# 1
>> -XX:+PrintGCApplicationStoppedTimethe above flag reports all the stop the world pauses not only those caused because of gc. Unfortunately, this flag has misleading name.
Thanigaivel.Ma at 2007-7-12 8:44:52 > top of Java-index,Java HotSpot Virtual Machine,Specifications...
# 2

Hi Thanigaivel

> the above flag reports all the stop the world pauses not only

> those caused because of gc. Unfortunately, this flag has

> misleading name.

Thanks for your info!!

Can you think of any reasons other than GC that cause the stop the world pauses? How can I identify the reason? Are there any VM options to log all the activities that causes the "stop the world" pauses?

incognitaa at 2007-7-12 8:44:52 > top of Java-index,Java HotSpot Virtual Machine,Specifications...
# 3
Thanks Thanigaivel.I'm going to try to monitor the actual response time of requests.What kind of cause application threads are stopped for a long time?
icb00001a at 2007-7-12 8:44:52 > top of Java-index,Java HotSpot Virtual Machine,Specifications...