Abstract
Garbage collection (GC) is a critical part of performance in managed run-time systems such as the OpenJDK Java Virtual Machine (JVM). With a large number of latency sensitive applications written in Java the performance of the JVM is essential. Java application servers run in data centers on a large number of multi-core servers, thus load balancing in multi-threaded GC phases is critical. Dynamic load balancing in the JVM GC is achieved through work stealing, a well known and effective method to balance tasks across threads. This paper analyzes the JVM work stealing behaviour, and introduces a novel work stealing technique that improves performance, GC CPU utilization, scalability, and reduces the cost of jobs running on Google’s data-centers. We analyze both the DaCapo benchmark suite as well as Google’s data-center jobs. Our results show that the Gmail front-end server shows a 15-20% GC CPU reduction, and a 5% CPU performance improvement. Our analysis of a sample of ~59K jobs shows that GC CPU utilization improves by 38% geomean, 12% weighted geomean. GC pause time improves by 16% geomean, 20% weighted geomean. Full GC pause time improves by 34% geomean, 12% weighted geomean.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference30 articles.
1. Arora N. S. Blumofe R. D. and Plaxton C. G. Thread scheduling for multiprogrammed multiprocessors. Theory of Computing Systems 34 2 (2001) 115-144. Arora N. S. Blumofe R. D. and Plaxton C. G. Thread scheduling for multiprogrammed multiprocessors. Theory of Computing Systems 34 2 (2001) 115-144.
2. Correct and efficient work-stealing for weak memory models
3. Scalable work stealing
4. Scheduling parallel programs by work stealing with private deques
5. Non-blocking steal-half work queues
Cited by
1 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献