Why is garbage collection causing my service level objectives to fail?. (2018) - Patros, Panagiotis; Kent, Kenneth B.; Dawson, Michael
Cloud computing abstracts resources and provides them as-a-service to its tenant clients. Platform as a service clouds, which are one of the main types of cloud computing, provide large parts of the hardware/software stack to their users. Cloud systems are expected to abide by certain service level objectives and maintain a certain quality of service, which can be impacted by garbage collection (GC). However, cloud benchmarking is mostly focused in the interconnectivity of cloud services and often neglects the inner workings of language runtimes. In this paper, we present and evaluate CloudGC, a benchmark aiming to stress the GC component of a runtime in various and controllable ways. We then deploy our CloudGC on a cloud system to evaluate the SLO satisfaction of the four GC policies of the IBM J9 Java runtime. Our findings indicate that the default policy Gencon generally outperforms the other three policies, including Balanced, the policy which aims in amortising the costs.