Abstract
Recent studies have found that parallel garbage collection performs worse with more CPUs and more collector threads. As part of this work, we further investigate this enomenon and find that poor scalability is worst in highly scalable Java applications. Our investigation to find the causes clearly reveals that efficient multi-threading in an application can prolong the average object lifespan, which results in less effective garbage collection. We also find that prolonging lifespan is the direct result of Linux's Completely Fair Scheduler due to its round-robin like behavior that can increase the heap contention between the application threads. Instead, if we use pseudo first-in-first-out to schedule application threads in large multicore systems, the garbage collection scalability is significantly improved while the time spent in garbage collection is reduced by as much as 21%. The average execution time of the 24 Java applications used in our study is also reduced by 11%. Based on this observation, we propose two approaches to optimally select scheduling policies based on application scalability profile. Our first approach uses the profile information from one execution to tune the subsequent executions. Our second approach dynamically collects profile information and performs policy selection during execution.
- Memory Management in the Java HotSpot Virtual Machine. http://www.oracle. com/technetwork/java/javase /memorymanagement-whitepaper -150215.pdf, 2006.Google Scholar
- Completely Fair Scheduler in Linux. https://www.kernel.org/doc/Documentation/scheduler/sched-design-CFS.txt, 2015.Google Scholar
- S. M. Blackburn, P. Cheng, and K. S. McKinley. Myths and Realities: The performance Impact of Garbage Collection. ACM SIGMETRICS Performance Evaluation Review, 32(1):25--36, 2004.Google Scholar
Digital Library
- S. M. Blackburn, R. Garner, C. Hoffmann, A. M. Khang, K. S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, et al. The DaCapo Benchmarks: Java Benchmarking Development and Analysis. In ACM Sigplan Notices, volume 41, pages 169--190. ACM, 2006.Google Scholar
- K.-Y. Chen, J. M. Chang, and T.-W. Hou. Multithreading in Java: Performance and Scalability on Multicore Systems. Computers, IEEE Transactions on, 60(11):1521--1534, 2011.Google Scholar
Digital Library
- K. Du Bois, J. B. Sartor, S. Eyerman, and L. Eeckhout. Bottle Gras: Visualizing Scalability Bottlenecks in Multi-threaded Applications. In ACM SIGPLAN Notices, volume 48, pages 355--372. ACM, 2013.Google Scholar
- H. Esmaeilzadeh, T. Cao, Y. Xi, S. M. Blackburn, and K. S. McKinley. Looking Back on the Language and Hardware Revolutions: Measured Power, Performance, and Scaling. In ACM SIGARCH Computer Architecture News, volume 39, pages 319--332. ACM, 2011.Google Scholar
- L. Gidra, G. Thomas, J. Sopena, and M. Shapiro. Assessing the Scalability of Garbage Collectors on Many Cores. In Proceedings of the 6th Workshop on Programming Languages and Operating Systems, page 7. ACM, 2011.Google Scholar
- L. Gidra, G. Thomas, J. Sopena, M. Shapiro, et al. A Study of the Scalability of Stop-the-world Garbage Collectors on Multicores. In ASPLOS 13-Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems, pages 229--240, 2013.Google Scholar
- L. Gidra, G. Thomas, J. Sopena, M. Shapiro, and N. Nguyen. NumaGiC: a Garbage Collector for Big Data on Big NUMA Machines. In ASPLOS 15-Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems, 2015.Google Scholar
- M. Hertz, S. M. Blackburn, J. E. B. Moss, K. S. McKinley, and D. Stefanović. Error-Free Garbage Collection Traces: How to Cheat and Not Get Caught. In Proceedings of the 2002 ACM International Conference on Measurement and Modeling of Computer Systems (SIGMETRICS), pages 140--151, Marina Del Rey, California, 2002.Google Scholar
Digital Library
- W. Huang, J. Lin, Z. Zhang, and J. M. Chang. Performance Characterization of Java Applications on SMT Processors. In Performance Analysis of Systems and Software, 2005. ISPASS 2005. IEEE International Symposium on, pages 102--111. IEEE, 2005.Google Scholar
Digital Library
- R. Jones and R. Lins. Garbage Collection: Algorithms for automatic Dynamic Memory Management. John Wiley and Sons, 1998.Google Scholar
Digital Library
- T. Kalibera, M. Mole, R. Jones, and J. Vitek. A Black-box Approach to Understanding Concurrency in DaCapo. In Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA '12, pages 335--354, 2012.Google Scholar
Digital Library
- C.-T. D. Lo, W. Srisa-an, and J. M. Chang. A Quantitative Simulator for Dynamic Memory Managers. In Performance Analysis of Systems and Software, 2000. ISPASS. 2000 IEEE International Symposium on, pages 64--69. IEEE, 2000.Google Scholar
- M. K. McKusick, G. V. Neville-Neil, and R. N. Watson. The design and implementation of the FreeBSD operating system. Pearson Education, 2014.Google Scholar
Digital Library
- J. Qian, D. Li, W. Srisa-an, H. Jiang, and S. Seth. Factors Affecting Scalability of Multithreaded Java Applications on Manycore System. In 2015 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS), pages 167--168. IEEE, 2015.Google Scholar
- J. Qian, W. Srisa-an, D. Li, H. Jiang, and S. Seth. SmartStealing: Analysis and Optimization of Work Stealing in Parallel Garbage Collection for Java VM. In Proceedings of the 12th International Conference on Principles and Practice of Programming in Java, pages 170--181. ACM, 2015.Google Scholar
Digital Library
- J. B. Sartor and L. Eeckhout. Exploring Multi-threaded Java Application Performance on Multicore Hardware. In ACM SIGPLAN Notices, volume 47, pages 281--296. ACM, 2012.Google Scholar
Digital Library
- R. Shahriyar, S. M. Blackburn, and K. S. McKinley. Fast Conservative Garbage Collection. In Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications, pages 121--139. ACM, 2014.Google Scholar
Digital Library
- J. SPEC. Client2008 Suite. URL: https://www. spec.org/ jvm2008/, 2008.Google Scholar
- D. Stefanović, M. Hertz, S. M. Blackburn, K. S. McKinley, and J. E. B. Moss. Older-First Garbage Collection in Practice: Evaluation in a Java Virtual Machine. SIGPLAN Notices, 38(2 supplement):25--36, 2003.Google Scholar
- D. Stefanović, K. S. McKinley, and J. E. B. Moss. Age-Based Garbage Collection. In Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pages 370--381, Denver, Colorado, United States, November 1999.Google Scholar
- F. Xian, W. Srisa-an, C. Jia, and H. Jiang. AS-GC: An Efficient Generational Garbage Gollector for Java Application Servers. In ECOOP 2007--Object-Oriented Programming, pages 126--150. Springer, 2007.Google Scholar
- F. Xian, W. Srisa-an, and H. Jiang. Allocation-ase Aware Thread Scheduling Policies to Improve Garbage Collection Performance. In Proceedings of the 6th international symposium on Memory management, pages 79--90. ACM, 2007.Google Scholar
Digital Library
- F. Xian, W. Srisa-an, and H. Jiang. Microase: An Approach to Proactively Invoking Garbage Collection for Improved Performance. In ACM SIGPLAN Notices, volume 42, pages 77--96. ACM, 2007.Google Scholar
Digital Library
- F. Xian, W. Srisa-an, and H. Jiang. Contention-aware Scheduler: Unlocking Execution Parallelism in Multithreaded Java Programs. In ACM Sigplan Notices, volume 43, pages 163--180. ACM, 2008.Google Scholar
Digital Library
Index Terms
Exploiting FIFO Scheduler to Improve Parallel Garbage Collection Performance
Recommendations
Exploiting FIFO Scheduler to Improve Parallel Garbage Collection Performance
VEE '16: Proceedings of the12th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution EnvironmentsRecent studies have found that parallel garbage collection performs worse with more CPUs and more collector threads. As part of this work, we further investigate this enomenon and find that poor scalability is worst in highly scalable Java applications. ...
Age-based garbage collection
Modern generational garbage collectors look for garbage among the young objects, because they have high mortality; however, these objects include the very youngest objects, which clearly are still live. We introduce new garbage collection algorithms, ...
Age-based garbage collection
OOPSLA '99: Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applicationsModern generational garbage collectors look for garbage among the young objects, because they have high mortality; however, these objects include the very youngest objects, which clearly are still live. We introduce new garbage collection algorithms, ...







Comments