Results 1 to 1 of 1
  1. #1
    jdpl28 is offline Member
    Join Date
    Jul 2011
    Posts
    1
    Rep Power
    0

    Default Garbage Collection Pauses

    Hi,

    we have an application that's getting a lot of traffic - so we need to make sure any GC pauses are short. We're doing a lot of tuning, but we're seeing pauses that don't really understand. We have been unable to find any documentation/sites on the web regarding these type of pauses, despite extensive searching.

    We have GC logging turned on. GC pauses in the logs look like:

    Java Code:
    Total time for which application threads were stopped: 0.1678548 seconds
    2011-07-14T12:22:08.959+0100: 6617.878: [GC 1056613K(3063808K), 0.3740773 secs]
    Total time for which application threads were stopped: 0.3746182 seconds
    2011-07-14T12:22:11.559+0100: 6620.478: [GC 1071349K(3063808K), 0.3636819 secs]
    Total time for which application threads were stopped: 0.3644146 seconds
    2011-07-14T12:22:17.447+0100: 6626.366: [GC 1094349K(3063808K), 1.5364703 secs]
    Total time for which application threads were stopped: 1.5369290 seconds
    Total time for which application threads were stopped: 0.0009558 seconds
    2011-07-14T12:22:21.328+0100: 6630.248: [GC 1122614K(3063808K), 0.4056810 secs]
    Total time for which application threads were stopped: 0.4064192 seconds
    Total time for which application threads were stopped: 0.0027435 seconds
    2011-07-14T12:22:27.203+0100: 6636.122: [GC 1154376K(3063808K), 0.4401036 secs]
    Total time for which application threads were stopped: 0.4414051 seconds
    2011-07-14T12:22:29.970+0100: 6638.890: [GC 1168058K(3063808K), 0.4650120 secs]
    Total time for which application threads were stopped: 0.4675169 seconds
    {Heap before GC invocations=101 (full 847):
     par new generation   total 737280K, used 691265K [0xfffffd7f35800000, 0xfffffd7f67800000, 0xfffffd7f67800000)
      eden space 655360K, 100% used [0xfffffd7f35800000, 0xfffffd7f5d800000, 0xfffffd7f5d800000)
      from space 81920K,  43% used [0xfffffd7f62800000, 0xfffffd7f64b10740, 0xfffffd7f67800000)
      to   space 81920K,   0% used [0xfffffd7f5d800000, 0xfffffd7f5d800000, 0xfffffd7f62800000)
     concurrent mark-sweep generation total 2326528K, used 481950K [0xfffffd7f67800000, 0xfffffd7ff5800000, 0xfffffd7ff5800000)
     concurrent-mark-sweep perm gen total 26200K, used 15700K [0xfffffd7ff5800000, 0xfffffd7ff7196000, 0xfffffd7ffac00000)
    2011-07-14T12:22:31.038+0100: 6639.957: [GC
    Desired survivor size 41943040 bytes, new threshold 12 (max 12)
    - age   1:    8654688 bytes,    8654688 total
    - age   2:    3316368 bytes,   11971056 total
    - age   3:    3081200 bytes,   15052256 total
    - age   4:     959360 bytes,   16011616 total
    - age   5:    5287384 bytes,   21299000 total
    - age   6:    2741392 bytes,   24040392 total
    - age   7:    1637824 bytes,   25678216 total
    - age   8:    1203688 bytes,   26881904 total
    - age   9:    2866696 bytes,   29748600 total
    - age  10:     130512 bytes,   29879112 total
    - age  11:     524568 bytes,   30403680 total
    - age  12:     628560 bytes,   31032240 total
     1173216K->536571K(3063808K), 0.0439947 secs]
    Heap after GC invocations=102 (full 847):
     par new generation   total 737280K, used 54313K [0xfffffd7f35800000, 0xfffffd7f67800000, 0xfffffd7f67800000)
      eden space 655360K,   0% used [0xfffffd7f35800000, 0xfffffd7f35800000, 0xfffffd7f5d800000)
      from space 81920K,  66% used [0xfffffd7f5d800000, 0xfffffd7f60d0a600, 0xfffffd7f62800000)
      to   space 81920K,   0% used [0xfffffd7f62800000, 0xfffffd7f62800000, 0xfffffd7f67800000)
     concurrent mark-sweep generation total 2326528K, used 482258K [0xfffffd7f67800000, 0xfffffd7ff5800000, 0xfffffd7ff5800000)
     concurrent-mark-sweep perm gen total 26200K, used 15700K [0xfffffd7ff5800000, 0xfffffd7ff7196000, 0xfffffd7ffac00000)
    }
    Main issue above is the pause that takes 1.5+ secs to complete. We're getting thousands of these per day - so it is a big issue. Thing is we don't know where those pauses are coming from. It looks like must be young garbage collector, but we're not sure...

    We have GC options:

    Java Code:
    -Xms3072M
    -Xmx3072M
    -XX:NewSize=800M
    -XX:MaxNewSize=800M
    -XX:+UseParNewGC
    -XX:+UseConcMarkSweepGC
    -XX:ParallelCMSThreads=8
    -XX:ParallelGCThreads=4
    -XX:MaxTenuringThreshold=12
    -XX:CMSInitiatingOccupancyFraction=55
    System is 4-core Solaris box, running 32Gb - so resources are not an issue.

    We guess its an issue regarding parsing the young space, before an actual young GC occurs? but again - have not been able to find any documentation on this. It would be good to get verification. Also - is there any guidelines on what max size young generation space should be? is 800M just too big?

    any help much appreciated.
    Regards,
    Justin
    Last edited by jdpl28; 07-16-2011 at 03:33 PM.

Similar Threads

  1. i m so confuse in garbage collection
    By vivek6569 in forum New To Java
    Replies: 3
    Last Post: 05-03-2011, 08:39 AM
  2. JVM Garbage Collection
    By daromnet in forum Advanced Java
    Replies: 4
    Last Post: 03-09-2011, 11:18 AM
  3. Garbage Collection Question
    By DrMath in forum New To Java
    Replies: 5
    Last Post: 10-03-2009, 11:08 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •