Wilson Mar bio photo

Wilson Mar

Hello. Hire me!

Email me Calendar Skype call 310 320-7878

LinkedIn Twitter Gitter Google+ Youtube

Github Stackoverflow Pinterest

How to find and fix JVM reliability running Java


Overview

This tutorial explains the tools and techniques for finding faults in applications that make use of the Java Virual Machine (JVM).

Languages that use the JVM include

  • Java
  • Scala
  • JPython
  • RubyPython
  • etc.

Potential root causes

  • Configuration settings inappropriate (defaults)
  • Network equipment failure
  • Network delays
  • Server hardware (memory, inappropriate cache size)
  • Inadequate free disk space
  • Code causing memory leaks
  • Inefficient coding techniques

Symptoms

  • Delays in response time (due to garbage collection, slow database access, etc.)
  • Memory leaks
  • CPU spikes
  • Heavy disk usage (thrashing, swapping)
  • etc.

The tools

  1. Operating System level metrics (collected by Microsoft Windows Perfmon, etc.)
  2. Operating System log storage and analysis

  3. Application logs storage and analysis
  4. Application log readers

  5. JMX to collect from JVM Garbage Collection
  6. JVM Garbage Collection log readers

  7. Operating System thread dump readers

  8. Java Code Profilers to identify resources consumed by specific objects

  9. Debuggers (run one line at a time)

  10. Static code analyzers (such as SonarQube)
  11. Code linters

Our services

  • Interview to collect relevant facts and perspectives
  • Advise on courses of action
  • Design architecture and project plans
  • Assist with implementation
  • Verify
  • Educate

Call me