Secrets of Performance Tuning Java on Kubernetes by Bruno Borges
Ғылым және технология
Initially, getting Java to run on Kubernetes may seem complicated, but after a few lines of YAML and a bit of work with Docker, you will wonder what all that fuss was. It is easy! Then you start looking at the performance of your Java app in one core, one GB of memory container, and this is when it all very quickly gets murky. Ops, SREs, and Java developers need to be aware of the JVM's inner works when deciding on how to resource their applications. Without this knowledge, it isn't easy to know whether it is best to scale vertically or horizontally for performance and costs. This talk will explore JVM ergonomics, CPU throttling, Garbage Collectors, and how using this knowledge can help you increase performance while reducing costs in the cloud.
Пікірлер: 13
Absolutely outstanding! Many experienced Java developers and SREs might not fully understand how these two disciplines interact. This presentation provides invaluable real-world insights. We definitely need more content like this!
Great presentation @BrunoBorges! 🔥
excellent presentation, i really appreciate your thoughtful talk
Great presentation @BrunoBorges! Definitely helped me understand the JVM and how to optimize for k8s. Thanks!
I really appreciate the presentation, You're strong Bruno 👏 💪
Very thorough and helpful, learned a lot of very useful things!
@BrunoBorges
Жыл бұрын
Thanks!
Please remember to restate the questions from the audience.
Super interesting and well presented. I may have missed it but I didn't see any word about request Vs. Limit. I somehow assumed that everything you say applies to limits and we should set request = limit in k8s but would appreciate some feedback on this. Thanks anyway
@BrunoBorges
Жыл бұрын
You are right that I do talk about cpu_limit. cpu_request is mostly used for scheduling pods. Now, whether should request = limit, it really depends. In general, it is safe to set request < limit, because at startup and warmup time, the more CPU the JVM can have, the better. After the JVM is up and running, it will generally consume less CPU.
C# sucked so bad so they switched back to java?
Er, question #2 at 18 minute mark makes no sense. The JVM doesn't select what GC to run, it doesn't have the information to do that. Ok, he's talking about the selection between client class and server class machines.
So long-winded and slow, even at 1.5x speed. Cut this talk in half and it'll be much more effective.