A study of performance and power of Java Virtual Machines and garbage collectors
With CPUs dominating the power consumption of a datacenter, improving energy efficiency is a primary design goal for current processors, servers, and even datacenters. Power management schemes such as clock and power gating have been proposed. These schemes put the processor in different sleep states depending on the frequency and intensity that the program requires. Existing power management solutions that focus on predicting which idle or active state the processor should be running at a certain time are all hardware solutions. Our research focuses on how software, specifically the Java Virtual Machine (JVM), can help the power management system predict which state to put the processor on in a more power efficient manner. This dissertation is a start towards achieving this goal. It will begin presenting a tool for measuring power consumed by a JVM which will be used to provide useful data to come up with conclusions. This tool assisted in analyzing which type of programs consume the most power and which JVM is the most efficient. The later section of this dissertation focuses on how using different garbage collectors while running different types of workloads can affect both power and performance.