Monday, September 17, 2018

Java Performance Monitoring and Tuning

Scalability

  • how well an app behaves as load increases


Responsiveness

  • web UI  where we measure how long it takes for one txn
  • high pause times are NOT acceptable


Throughput

  • batch stuff
  • focus is on how many txns are done in a period than the response time of one txn
  • high pause times are acceptable


Client apps - start up time is important and should be low
Server apps - startup time is not important and can be high

Performance Methodology

  1. monitor
  2. profile
  3. Tune

Garbage Collection

  1. New objects are created in eden space. when eden space is full, minor gc is triggered. This is a stop the world event
  2. Objects still referenced in eden will move to survivor space S0 and then on to S1
  3. If the object still has references after some time, it is moved to tenured (old gen) space
  4. Minor GC can be run in single or multiple threads 
  5. When Tenured gen space is full, a full gc is run. This can be a single or multiple threaded. This is a mostly concurrent event
  6. Permanent Gen - meta data required by JVM...contains class objects and methods..



No comments: