Wilson Mar bio photo

Wilson Mar

Hello!

Calendar YouTube Github

LinkedIn

How to find and fix JVM reliability running Java

US (English)   Norsk (Norwegian)   Español (Spanish)   Français (French)   Deutsch (German)   Italiano   Português   Estonian   اَلْعَرَبِيَّةُ (Egypt Arabic)   Napali   中文 (简体) Chinese (Simplified)   日本語 Japanese   한국어 Korean

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