What will you learn?

JVM is the most popular programming platform in the world. It empowers several enterprises to reach its scalability, performance, availability, and functionality goals. In this training program, engineers will be taught how to isolate, detect and fix complex performance problems. They will be taught what tools to use for what problems? How to use those tools effectively?  They will learn effective techniques & patterns to troubleshoot production problems.

Training program includes

  • ‘ah ha’ moments provoking presentations
  • Hands-on training on sophisticated tools
  • Lab exercises on real-world dumps
  • Best practice recommendations

After this training program, engineers will be equipped with necessary knowledge to optimize CPU, memory and response time.

Training Period

2 days. 9:00am – 5:00pm

For Whom?

Developers, Architects, Operation Engineers, Performance QA Engineers and anybody interested in building highly scalable, performant applications.

Computer Requirements

The Engineer should come with his Laptop that has JDK 7 or 8 installed. Laptop should have internet connectivity & http://tier1app.com/ website should be accessible. Slides, Code and sample dumps will be provided electronically during the training session.


Day 1: Morning Session

What are Performance Problems?

What is JVM? Why it will outlive Java?

Anatomy of JVM

GC Log

  • How to capture GC Log?
  • Understanding GC Log
  • Diamond GC – Universal GC Analyzer
  • Instrumenting GC Logs
  • Analyze sample GC Logs
  • Let’s analyze your app’s GC Log

Day 1: Afternoon Session

Why Memory Leaks?

  • lang.OutOfMemoryError: Java heap space
  • lang.OutOfMemoryError: PermGen space
  • lang.OutOfMemoryError: Kill process or sacrifice child
  • lang.OutOfMemoryError: GC overhead limit exceeded
  • lang.OutOfMemoryError: Metaspace
  • lang.OutOfMemoryError: request bytes. Out of swap space?
  • lang.OutOfMemoryError: unable to create new native thread
  • lang.OutOfMemoryError: Requested array size exceeds VM limit

Which GC Algorithm to use?

Yes, you can catch Memory Leaks in Test

Heap Dump

  • How to capture Heap Dump? JMAP, -XX:+HeapDumpOnOutOfMemoryError
  • Tool: jhat, Eclipse Mat
  • Analyze sample Heap dumps

Day 2: Morning Session

Why CPU spikes up? What are the root causes?

Diagnose CPU spikes

Thread Dump

  • How to capture Thread Dump? jstack, JVisualVM
  • Understanding Thread Dumps
  • 10 key Thread Dump analysis Patterns
  • Thread Express – Universal Thread Dump Analyzer
  • Analyze sample Thread dumps

Day 2: Afternoon Session

Why I/O problems arises? What are the root causes?

Tools to diagnose I/O Problems

  • Timer
  • netstat

Other Tools, know – how

  • Jvisualvm
  • Profiler
  • new Relic
  • ruxit