Adding generational support to Shenandoah GC

День 1 /  / Трек 2  /  EN / Для практикующих инженеров  /  Shenandoah,JVM

By replacing various stop-the-world phases of traditional OpenJDK garbage collectors with concurrent Shenandoah GC phases that allow multiple application threads to run concurrently with multiple GC threads, it is now possible to configure JVM deployments of common workloads to never experience GC pauses any longer than ten ms. However, configuring a JVM to run "pause free" with Shenandoah or other available concurrent GC algorithms such as ZGC typically requires a much larger heap than is required with more traditional GC approaches. Whereas traditional GC runs reliably with heap utilization of 75% or higher, configuring Shenandoah GC to not experience pauses longer than 10 ms often requires heap utilization no greater than 30%.

A group of Corretto JVM engineers at Amazon has been working for the past year on adding generational support to Shenandoah GC, with the expectation that generational Shenandoah GC will allow pause-free JVM configurations even with heap utilization of 65% and higher. This talk describes some of the workloads that have motivated the generational Shenandoah effort, provides an overview of the algorithms and heuristics that are being implemented and offers a summary overview of the work plan, including the most recent experimental results.

Скачать презентацию


Kelvin Nilsen

Kelvin Nilsen is a Senior Software Development Engineer on the Amazon Corretto team. He is best known as the inventor of the original real-time Java specification and architect of the Perc real-time virtual machine which has been deployed in thousands of automation applications, many of which honor P100 compliance with 100 microsecond end-to-end response time constraints.

Приглашенные эксперты

Volker Simonis

Volker Simonis is a Principal Software Engineer in the Corretto team at Amazon Web Services. He works on Java Virtual Machines since 2004 and is an OpenJDK Member, Reviewer and Committer right from the start. Before joining Amazon he worked for SAP, Sun Microsystems and the University of Tübingen from where he holds a master and PhD degree in Computer Science. He represented SAP in the Executive Committee of the JCP and was a member of the JCP Expert Groups for Java SE 9 to 13. He's a passionate and frequent speaker at conferences around the globe and can easily be contacted at @volker_simonis.

Алексей Шипилёв
Red Hat

Алексей работает над производительностью Java больше 10 лет. Сегодня он работает в Red Hat, где занимается разработкой OpenJDK и его производительностью. Алексей разрабатывает и поддерживает несколько подпроектов в OpenJDK, включая JMH, JOL и JCStress. Алексей также активно участвует в экспертных группах и сообществах, работающих над вопросами производительности и многопоточности. Перед тем как перейти в Red Hat, Алексей работал над Apache Harmony в Intel, а затем перешёл в Sun Microsystems, которая была поглощена Oracle.