longer ParNew collection in JDK8?

Michal Frajt michal at frajt.eu
Fri Feb 6 22:06:47 UTC 2015


Joy,

The ParNew pause time is just one aspect of comparing. What is the frequency of your ParNew invocation in JDK6/7/8? It can be the JDK7/8 ParNew pause takes longer but it is invoked less frequently. Just the JDK7/8 might produce less garbage due to a better implementation of JDK classes (String does not contain offset, substring works differently, autoboxing of ints, etc) or the JVM escape analysis provides better inputs for the scalar allocation. Less garbage being produced means that filling the eden space takes longer, eden space contains more objects which survive first age, which finally makes ParNew to take longer. The promotion rate to the old generation is not impacted or can be even smaller as more objects have chance to die.

You can control the ParNew invocation frequency by the size of the new generation and the survivor ratio. Btw, SurvivorRatio of 2 is not very common for an application where objects die young, but correct parameter depends on many other factors.

We are currently testing JDK8-b40 where we similarly observe a bit less frequent ParNew invocations with a bit increased pause time.

Regards,
Michal 



Od: "hotspot-gc-use" hotspot-gc-use-bounces at openjdk.java.net
Komu: hotspot-gc-use at openjdk.java.net
Kopie: 
Datum: Mon, 02 Feb 2015 10:06:22 -0800
Předmet: Re: longer ParNew collection in JDK8?



> 

  
    
  
  
    Joy,
> 
    
> 
    Is your application such that most everything dies in the
> 
    young generation and very little is promoted?  If yes,
> 
    do you know if there is a difference in how much is
> 
    promoted between the two releases?
> 
    
> 
    Jon
> 
    
> 
    > On 01/29/2015 10:27 AM, Joy Xiong
      wrote:
> 
    
    
      > 
        > 
          > 
            
> 
            
            > Hi,
            
> 
            
            > We recently move our services from JDK6 to JDK8,
              but observe longer ParNew GC pause in JDK8. For example,
              the pause time increase from 27ms to 43ms in one service.
              The service has the JVM parameters as below:
            > 
              > -Xms32684m -Xmx32684m
                -XX:NewSize=2048m -XX:MaxNewSize=2048m
                -XX:+UseConcMarkSweepGC -XX:+UseParNewGC
                -XX:CMSInitiatingOccupancyFraction=70
                -XX:SurvivorRatio=2 -XX:+AlwaysPreTouch
                -XX:+UseCompressedOops -XX:+PrintTenuringDistribution
                -XX:+PrintGCDetails -XX:+PrintGCDateStamps
                -Xloggc:logs/gc.log -XX:+PrintGCApplicationStoppedTime
                -XX:+PrintGCApplicationConcurrentTime
              
> 
              
            
            > Is this longer ParNew pause expected? Any
              suggestions to mitigate the longer pause?
            
> 
            
            > thanks,
            > -Joy
          
        
      
      
> 
      
      
> 
      > _______________________________________________
hotspot-gc-use mailing list
hotspot-gc-use at openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use

    
    
> 
  



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-gc-use/attachments/20150206/6ea67dac/attachment.html>


More information about the hotspot-gc-use mailing list