320 likes | 445 Views
Investigating the Effects of Using Different Nursery Sizing Policies on Performance . Tony Guan, Witty Srisa-an , and Neo Jia Department of Computer Science & Engineering University of Nebraska-Lincoln { xguan,witty,cjia}@cse.unl.edu. Setting the Stage …. JBoss application server
E N D
Investigating the Effects of Using Different Nursery Sizing Policies on Performance Tony Guan, Witty Srisa-an, and Neo Jia Department of Computer Science & Engineering University of Nebraska-Lincoln {xguan,witty,cjia}@cse.unl.edu
Setting the Stage … JBossapplication server HotSpot VM released as part of OpenJDK1.7 Parallel generational collector with 8 minor and 8 major collection threads 256 MB heap for this example (very little paging) Nursery and mature spaces are set to 1:2 and periodically resized to maximize throughput Throughput performance of SPECjAppServer2004
Setting the Stage • Performance of the generational collectorhas something to do with such throughput behavior • Higher workload often results in higher GC overhead • More GC work means less useful work done by an application
Motivation • One factor that differs among different generational collector implementations is nursery sizing policy • There are multiple waysto size the nursery and mature space • Performance ramifications of using each policy have not been widely investigated
Research Goals • Can performance be affected by using different sizing policies? • Modify a VM to support multiple sizing policies • If so, how can it be affected? • Perform analysis by observing various metrics including execution time, throughput, GC behavior, and minimum mutator utilization
Agenda • Overview of investigated sizing policies • Experimental methodology • Results of our evaluation • Introducing a hybrid policy • Conclusions
Sizing Policy: Fixed Ratio Nursery (33%) Nursery (33%) Mature (66%) Mature (66%) Size enlarged by 20% Nursery
Sizing Policy: Heap Availability Nursery Nursery Nursery Nursery Used Mature Used Mature Used Mature After Minor_GC1 After Minor_GC2 After Minor_GCn Initial
Sizing Policy: GC Ergonomics Nursery (33%) Nursery (40%) Nursery (48%) Mature (66%) Mature (60%) Mature (52%) Size and ratio are adjusted to meet performance goal(s)
Terminology: Copy-Reserve* Nursery Copy- Reserve … Used Mature Used Mature Mature After a Minor GC After a few Minor GC Initial Copy-Reserve = 100% of nursery *Sizing policy = FR
Experimental Setting • Three nursery sizing policies • GC Ergonomics Policy (Default) • Fixed Ratio Policy (FR) • Heap Availability Policy (HA) • Multithreaded benchmarks • SPECjvm2008 (17) • Multithreaded benchmarks from DaCapo (eclipse,hsqldb,lusearch,xalan) • SPECjbb2005 & SPECjAppServer2004
Experimental Setting • JVM (Hotspot) settings: • Memory: Old:Young=2:1 • 2 times minimum heap for each application • 256MB for jAppServer2004 and 1GB for jbb2005 • GC : 8 threads for both minor & full GC, policy modification based on parallel collector • Platform: Intel Xeon 8 cores, 16GB, running Linux • Methodology: 5 runs, report best, worst, and average
Result: jvm2008 & DaCapo The remaining thirteen benchmarks show little sensitivity to different policies
Analysis: jvm2008 & DaCapo Using different sizing policies can affect the garbage collection performance
Analysis: jAppServer2004 Nursery Nursery Nursery Copy- Reserve Copy- Reserve Copy- Reserve Full Collection Full Collection Used Mature Used Mature Used Mature Current heap usage Mature heap usage after full collection Mature heap usage after full collection Copy-Reserve = 100% of nursery Sizing policy = FR or Default
Analysis: jAppServer2004 Nursery Nursery Nursery Copy- Reserve Minor Collection Minor Collection Copy- Reserve Used Mature Copy- Reserve Used Mature Initial After a Minor GC After a few Minor GC Copy-Reserve = 100% of nursery Sizing policy = HA
Summary • HA does not do as well as the other two policies when the workload is light • HA allows the server to respond to requests significantly longer under heavyworkload
A Hybrid Policy • Use default policy for the peak performance during light workload • Use HA as soon as the GC behavior has reached a critical point • number of consecutive FullGC >= consecFailure (e.g., 2)
Conclusions • Threenursery sizing policies are investigated using 23 benchmarks • Sizing policy does matter! • Itcan impact performance and serviceability of large servers • Up to 36% performance differences have been observed in some benchmarks • The hybrid policy can be useful in large servers to better handle heavy workload
Investigating the Effects of Using Different Nursery Sizing Policies on Performance For source of modified hotspot & modified jbb2005 see: http://cse.unl.edu/~xguan Thanks!