Conference: Nov 13-15, 2017
Workshops: Nov 16-17, 2017
Presentation: Goodbye PrintGCDetails... and other JDK 9 Changes!
Duration
Level:
- Advanced
Persona:
- Developer
- Developer, JVM
Key Takeaways
- Gain solid insight into how to debug, troubleshoot, and optimizing the JVM.
- Understand how a JVM engineer reads GC Logs today with Java 8.
- Learn java performance monitoring, profiling, and tuning updates for Java 9.
Abstract
There are major new features and improvements coming in JDK 9 that will affect (but also help) anyone who's interested in Java performance monitoring, profiling, and tuning.
One of the most obvious ones is the new JVM logging framework which will unify all logging done by the JVM and replace HotSpot's current (and by now long-in-the-tooth) GC logs. The Compact Strings effort will help reduce the memory footprint of strings and, as a result, also reduce garbage collection overhead and improve throughput. The new stack-walking API will allow developers to walk a Java stack with better performance trade-offs than the existing solution. Finally, the new JVMCI API will allow JIT compilers to be written in Java.
This talk will give an overview of these features and outline their advantages and how they will help Java developers.
Interview
I’m a JVM Developer at Twitter, and I’m a member of the Twitter VM Team. We developer, maintain, improve, and release TwitterJDK which is the JDK that most of Twitter services run on internally.
TwitterJDK is basically an OpenJDK that we customize for Twitter. At Twitter, some of our services have specific performance and monitoring needs. We are a small team (five developers currently). Basically, by profiling and monitoring, we track down issues and help troubleshoot problems in production. We identify whether there is some performance problem that we could solve or some monitoring profiling limitations of the of existing JVM that we could improve upon.
We have some bug fixes. The JVM is pretty reliable, so we don’t hit that many bugs in production. But, yeah a lot of it is mainly around monitoring and profiling because of the way our services are run. It is very hard to test them separately. So if there any issues, a lot of the time we have to track them down them in production or in what we refer to as the "canary mode" of running the services. We want to have enough profiling information in production to be able to work out what is going on.
PrintGCDetails has been the single most important command line argument in HotSpot with respect to Garbage Collection (GC) monitoring and profiling for years. Given that the GC logging framework has been overhauled in JDK 9, PrintGCDetails has been removed and replaced with alternatives. This is one of the topics I plan to cover the most during the talk. The mention of PrintGCDetails in the title should catch the attention of anyone who’s used it in the past.
There are many changes that are coming in JDK 9 for people that do performance monitoring, GC monitoring and tuning, etc. For many years, folks have got very familiar with all of the GC logging options and output in HotSpot. All of that is removed in JDK 9 and replaced by the new unified logging framework. So, in order to get the same information they are used to, developers will not have to get familiar with the new command line options and the new output format. We are going to cover some of that in the talk, plus a few other bits and pieces that are related.
I think a lot of them were because the Garbage Collector logging framework was basically re-done in Java 9. So a lot of the changes were kind of a follow on to that. Additionally, people found that having really good monitoring and profiling that you can enable in production made finding issues easier and it is really, really important.
In some cases (in my opinion), really good monitoring facilities are more important than pure JVM performance because, if you can’t work out what is going wrong (and things are going to go wrong sooner or later), then your performance is zero. So, this is why there is a lot of emphasis on profiling and monitoring.
Anyone who’s used the current GC logging options and has spent a lot of time deciphering GC logs and anyone who’s interested in learning what monitoring information can be obtained from HotSpot.
Similar Talks
.
Tracks
Monday Nov 7
-
Architectures You've Always Wondered About
You know the names. Now learn lessons from their architectures
-
Distributed Systems War Stories
“A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable.” - Lamport.
-
Containers Everywhere
State of the art in Container deployment, management, scheduling
-
Art of Relevancy and Recommendations
Lessons on the adoption of practical, real-world machine learning practices. AI & Deep learning explored.
-
Next Generation Web Standards, Frameworks, and Techniques
JavaScript, HTML5, WASM, and more... innovations targetting the browser
-
Optimize You
Keeping life in balance is a challenge. Learn lifehacks, tips, & techniques for success.
Tuesday Nov 8
-
Next Generation Microservices
What will microservices look like in 3 years? What if we could start over?
-
Java: Are You Ready for This?
Real world lessons & prepping for JDK9. Reactive code in Java today, Performance/Optimization, Where Unsafe is heading, & JVM compile interface.
-
Big Data Meets the Cloud
Overviews and lessons learned from companies that have implemented their Big Data use-cases in the Cloud
-
Evolving DevOps
Lessons/stories on optimizing the deployment pipeline
-
Software Engineering Softskills
Great engineers do more than code. Learn their secrets and level up.
-
Modern CS in the Real World
Applied, practical, & real-world dive into industry adoption of modern CS ideas
Wednesday Nov 9
-
Architecting for Failure
Your system will fail. Take control before it takes you with it.
-
Stream Processing
Stream Processing, Near-Real Time Processing
-
Bare Metal Performance
Native languages, kernel bypass, tooling - make the most of your hardware
-
Culture as a Differentiator
The why and how for building successful engineering cultures
-
//TODO: Security <-- fix this
Building security from the start. Stories, lessons, and innovations advancing the field of software security.
-
UX Reimagined
Bots, virtual reality, voice, and new thought processes around design. The track explores the current art of the possible in UX and lessons from early adoption.