Building and Tuning High Performance Java Platforms
Recorded at SpringOne2GX 2015 Presenter: Emad Benjamin Core Spring Track This session will cover various GC tuning techniques and how to best build platform engineered systems; in particular the focus will be on tuning large scale JVM deployments. It is true that half of the world's Java applications have 2.x more hardware provisioned than what they really need, and 90% of these applications miss their SLA. In this session we showcase why this is the case, and demonstrate sizing techniques on how to platform engineer such systems without the need for over-provisioning and hence meeting SLA in a more feasible way. Come to this session to learn about GC tuning recipe that can give you the best configuration for latency sensitive applications. While predominantly most enterprise class Java workloads can fit into a scaled-out set of JVM instances of less than 4GB JVM heap, there are workloads in the in memory database space that require fairly large JVMs. We will look at various Java platform scales, some holding a few large JVMs of 90GB heap space, while other platforms are of thousands of JVM instances of less than 4GB heap space on each. We will also take a close look at an example XYZCars.com where a microservices approach was designed and deployed, we will talk through how to more correctly deploy microservices without out causing fragmentation of scale, and hence without impeding performance. In this session we take a deep dive into the issues and the optimal tuning configurations for tuning large JVMs in the range of 4GB to 360GB, using the GC tuning recipes that were gained over the past 15 years of GC tuning engagements. You should be able to walk away with the ability to commence a decent GC tuning exercise on your own. The session summarizes the techniques and the necessary JVM options needed to accomplish these complex tuning tasks, in addition to various virtualization best practices when dealing with such large Java systems. Naturally when tuning large scale JVM platforms, the underlying hardware tuning cannot be ignored, hence the session will take detour from the traditional GC tuning talks out there and dive into how you optimally size a platform for enhanced memory and CPU consumption.