Developers can spend a lot of time and energy trying to find performance bottlenecks and hotspots that prevent applications from scaling well when deployed in production. Many commercial JVM monitoring tools are available that help with diagnosis but they can also introduce monitoring overhead. When using commercial tools in production, developers often turn off certain features to avoid slowdowns in business critical applications, but this makes it harder to find and fix problems. Also, most commercial tools are designed to address a narrow range of potential problems (for example JVM monitoring issues) and do not correlate events with the operating system or hardware.
In this video, (in Russian) Azul’s Daniel Witkowski shows how to use free and open source as well as system software to find application problems fast. He covers a range of production application problems that can be diagnosed in this fashion including: sub-optimal application configuration (extensive logging, pools that are too small, pools that are too big); application hotspots (synchronized sections); performance hotspots (critical functions); and JVM-level problems and JVM monitoring tools (Garbage Collection, memory management). His methods will help you diagnose potential problems and performance bottlenecks in your application that cause most scalability issues.
He discusses Azul’s open source jHiccup diagnostic tool that you can download free from our website. If you’re interested in the topic, also take a look at Zing Vision, a zero performance overhead diagnostic tool instrumented into Zing, Azul’s advanced JVM.