Die JVM in Kubernetes - Von Mythen und Killern
Oracle und das OpenJDK-Projekt haben vieles getan, um die JVM besser an container-basierte Infrastrukturen anzupassen. Dennoch gibt es viele Punkte, die beachtet werden müssen, damit eine JVM ohne Probleme in einem Container laufen kann. Welche Rolle CPU Requests und Limits spielen und was der "CFS" ist, werden wir in dieser Session vertiefen.
Neben den Einstellungen, die die CPU betreffen, werden wir insbesondere Eigenheiten der Speicherverwaltung von Java betrachten und wie diese zu Problemen führen können, wenn man sie ignoriert.
Zum Abschluss machen wir einen kleinen Ausflug zu Optimierungen, die die Startup-Zeiten einer JVM in einem Pod signifikant beeinflussen können.
Vorkenntnisse
Grundlagenwissen zu Kubernetes und Containern sowie zur JVM ist sinnvoll.
Lernziele
Nach dieser Session wissen Teilnehmende unter anderem, warum "1000 Millicores" nicht 1 CPU-Kern sind, warum ein Budget zum Zerstören von Pods existiert, wie off-heap-Memory den Betrieb einer JVM erschwert und was die glibc mit der JVM zu tun hat.
Im weiteren Verlauf schauen wir uns zudem Optimierungsmöglichkeiten der neueren Java-Versionen an.