unusually long GC latencies

Nikolay Diakov nikolay.diakov at fredhopper.com
Mon Jan 11 08:35:40 PST 2010


Dear all,

We have a server application, which under some load seems to do some 
unusually long garbage collections that our clients experience as a 
service denied for 2+ minutes around each moment of the long garbage 
collection. Upon further look we see in the GC log that these happen 
during young generation cleanups:

GC log lines examplifying the issue
-----------------------------------
server1:
290059.768: [GC [PSYoungGen: 1804526K->83605K(2047744K)] 
4574486K->2873501K(5030720K), 0.0220940 secs] [Times: user=0.22 
sys=0.00, real=0.03 secs]
290297.525: [GC [PSYoungGen: 1790101K->92128K(2070592K)] 
4579997K->2882024K(5053568K), 183.0278480 secs] [Times: user=0.21 
sys=0.12, real=183.03 secs]
290575.578: [GC [PSYoungGen: 1831520K->57896K(2057792K)] 
4621416K->2892809K(5040768K), 0.0245410 secs] [Times: user=0.26 
sys=0.01, real=0.03 secs]

server2:
15535.809: [GC 15535.809: [ParNew: 2233185K->295969K(2340032K), 
0.0327680 secs] 4854859K->2917643K(5313116K), 0.0328570 secs] [Times: 
user=0.37 sys=0.00, real=0.03 secs]
15628.580: [GC 15628.580: [ParNew: 2246049K->301210K(2340032K), 
185.3817530 secs] 4867723K->2944629K(5313116K), 185.3836340 secs] 
[Times: user=0.38 sys=0.16, real=185.38 secs]
15821.983: [GC 15821.983: [ParNew: 2251290K->341977K(2340032K), 
0.0513300 secs] 4894709K->3012947K(5313116K), 0.0514380 secs] [Times: 
user=0.48 sys=0.03, real=0.05 secs]

If interested, I have the full logs - the issue appears 4-5 times in a day.

We have tried tuning the GC options of our server application, so far 
without success - we still get the same long collections. We suspect 
this happens because of the 16 core machine, because when we perform the 
same test on a 8 core machine, we do not observe the long garbage 
collections at all.

We also tried both the CMS and the ParallelGC algorithms - we get the 
delays on the 16 core machine in both cases, and in both cases the 
server works OK on the 8 core machine.

* Would you have a look what goes on? Below I post the information about 
the OS, Java version, application and HW. Attached find the GC logs from 
two servers - one running the CMS and the other running ParallelGC.

OS
--
Ubuntu 9.04.3 LTS

uname -a
Linux fas1 2.6.24-25-server #1 SMP Tue Oct 20 07:20:02 UTC 2009 x86_64 
GNU/Linux

HW
--
POWEREDGE R710 RACK CHASSIS with 4X INTEL XEON E5520 PROCESSOR 2.26GHZ
12GB MEMORY (6X2GB DUAL RANK)
2 x 300GB SAS 15K 3.5" HD HOT PLUG IN RAID-1
PERC 6/I RAID CONTROLLER CARD 256MB PCIE

Java
----
java version "1.6.0_16"
Java(TM) SE Runtime Environment (build 1.6.0_16-b01)
Java HotSpot(TM) 64-Bit Server VM (build 14.2-b01, mixed mode)

VM settings server1
-------------------
-server -Xms2461m -Xmx7000m -XX:MaxPermSize=128m -XX:+UseParallelGC 
-XX:+UseParallelOldGC -XX:ParallelGCThreads=10 -XX:MaxNewSize=2333m 
-XX:NewSize=2333m -XX:SurvivorRatio=5 -XX:+DisableExplicitGC 
-XX:+UseBiasedLocking -XX:+UseMembar -verbosegc -XX:+PrintGCDetails

VM settings server2
-------------------
-server -Xms2794m -Xmx8000m -XX:MaxPermSize=128m 
-XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -XX:+UseParNewGC 
-XX:+CMSParallelRemarkEnabled -XX:MaxNewSize
=2666m -XX:SurvivorRatio=5 -XX:+DisableExplicitGC -XX:+UseBiasedLocking 
-XX:+UseMembar -verbosegc -XX:+PrintGCDetails

We have also observed the issue without all GC-related settings, thus 
the VM running with defaults - same result.

Application:
-----------
Our application runs in a JBoss container and processes http requests. 
We use up to 50 processing threads. We perform about 10-20 request 
processings per second during the executed test that exposed the issue. 
Our server produces quite substantial amount of garbage.

Yours sincerely,
   Nikolay Diakov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-gc-use/attachments/20100111/9e49acf3/attachment.html 


More information about the hotspot-gc-use mailing list