analysis of overhead in dynamic java performance
play

Analysis of Overhead in Dynamic Java Performance Monitoring Vojtch - PowerPoint PPT Presentation

Analysis of Overhead in Dynamic Java Performance Monitoring Vojtch Hork, Jaroslav Kotr, Peter Libi and Petr Tma Charles University in Prague Context: Dynamic Monitoring of Production Systems Dynamic Monitoring of Production Systems


  1. Analysis of Overhead in Dynamic Java Performance Monitoring Vojtěch Horký, Jaroslav Kotrč, Peter Libič and Petr Tůma Charles University in Prague

  2. Context: Dynamic Monitoring of Production Systems

  3. Dynamic Monitoring of Production Systems Measurement probes are active only when needed, measuring everything all the time might not be practical.

  4. Dynamic Monitoring of Production Systems Measurement probes are active only when needed, measuring everything all the time might not be practical. Application function of dynamic interest monitoring control measurements database

  5. Dynamic Monitoring of Production Systems Measurement probes are active only when needed, measuring everything all the time might not be practical. Application We are interested in performance of function of dynamic this function interest monitoring control measurements database

  6. Dynamic Monitoring of Production Systems Measurement probes are active only when needed, measuring everything all the time might not be practical. Application get time function of dynamic interest monitoring control get time store difference measurements database

  7. Dynamic Monitoring of Production Systems Measurement probes are active only when needed, measuring everything all the time might not be practical. Application get time function of dynamic interest monitoring Code is dynamically control instrumented when measuring. get time store difference measurements database

  8. Dynamic Monitoring of Production Systems Measurement probes are active only when needed, measuring everything all the time might not be practical. Application function of dynamic interest monitoring control Once enough data is collected, probes are removed. measurements database

  9. Issues of Dynamic Monitoring In managed environments, code is compiled at run-time; probe insertion (removal) causes recompilation. Monitored application can thus behave differently.

  10. Issues of Dynamic Monitoring In managed environments, code is compiled at run-time; probe insertion (removal) causes recompilation. Monitored application can thus behave differently. Interesting Questions How do the code manipulations affect the application? What is the overhead of such probe? Is the observed performance representative? Is there zero overhead once the probe is removed?

  11. Experiment Setup

  12. Experiment Coordination dynamic monitoring measurements database application framework code

  13. Experiment Coordination dynamic monitoring measurements database application framework code Experiment with static probes experiment coordination CPU & JVM measurements monitoring database

  14. Two Measurement Infrastructures Self-measurement Dynamic monitoring

  15. Two Measurement Infrastructures Self-measurement Dynamic monitoring Performance Baseline “Observed”

  16. Two Measurement Infrastructures Self-measurement Dynamic monitoring Performance Baseline “Observed” Location Method entry and exit points (both)

  17. Two Measurement Infrastructures Self-measurement Dynamic monitoring Performance Baseline “Observed” Location Method entry and exit points (both) Instrumentation Static Dynamic (run-time)

  18. Two Measurement Infrastructures Self-measurement Dynamic monitoring Performance Baseline “Observed” Location Method entry and exit points (both) Instrumentation Static Dynamic (run-time) Data collection Continuous On demand

  19. Two Measurement Infrastructures Self-measurement Dynamic monitoring Performance Baseline “Observed” Location Method entry and exit points (both) Instrumentation Static Dynamic (run-time) Data collection Continuous On demand Implementation Native method (in C) Pure Java

  20. Two Measurement Infrastructures Self-measurement Dynamic monitoring Performance Baseline “Observed” Location Method entry and exit points (both) Instrumentation Static Dynamic (run-time) Data collection Continuous On demand Implementation Native method (in C) Pure Java dynamic probe static probe static function of dynamic (self) interest measurement measurement

  21. Experiment Process

  22. Experiment Process run for some time

  23. Experiment Process pick random method run for some time

  24. Experiment Process Dynamic monitoring pick insert random dynamic method probe run for some time

  25. Experiment Process Dynamic monitoring pick insert random dynamic method probe run for run for some some time time

  26. Experiment Process Dynamic monitoring pick insert random dynamic method probe run for run for some some time time dump from dump from static dynamic probes probe

  27. Experiment Process Dynamic monitoring pick insert random dynamic method probe run for run for some some time time dump from dump from static dynamic probes probe What is the observed performance?

  28. Experiment Process Dynamic monitoring pick insert random dynamic method probe run for How fast it runs run for some with dynamic some time monitoring? time dump from dump from static dynamic probes probe What is the observed performance?

  29. Experiment Process Dynamic monitoring pick insert random dynamic method probe run for How fast it runs run for some with dynamic some time monitoring? time dump from dump from static dynamic probes probe What is the remove observed dynamic performance? probe

  30. Experiment Process Dynamic monitoring pick insert random dynamic method probe run for How fast it runs run for some with dynamic some time monitoring? time dump from dump from static dynamic probes probe What is the run for remove observed some dynamic performance? time probe

  31. Experiment Process Dynamic monitoring pick insert random dynamic method probe run for How fast it runs run for some with dynamic some time monitoring? time dump from dump from dump from static static dynamic probes probes probe What is the run for remove observed some dynamic performance? time probe

  32. Experiment Process Dynamic monitoring pick insert random dynamic method probe run for How fast it runs run for some with dynamic some time monitoring? time dump from dump from dump from static static dynamic probes probes probe How fast it runs What is the run for remove without dynamic observed some dynamic monitoring? performance? time probe

  33. Experiment Process Dynamic monitoring pick insert random dynamic method probe run for How fast it runs run for some with dynamic some time monitoring? time dump from dump from dump from static static dynamic probes probes probe How fast it runs What is the run for remove without dynamic observed some dynamic monitoring? performance? time probe

  34. Platform and Application Details

  35. Platform and Application Details – Hardware: 32 CPUs, 2 NUMA nodes, 48G RAM.

  36. Platform and Application Details – Hardware: 32 CPUs, 2 NUMA nodes, 48G RAM. – SPECjbb2015 augmented with static probes. – Fixed request rate 4 000 reqs/s. (Close to maximum with static probes on our hardware.) – Over 1 200 monitored methods. – Business code of the benchmark. – Practically all methods called frequently enough. – About one minute of dynamic monitoring per method.

  37. Platform and Application Details – Hardware: 32 CPUs, 2 NUMA nodes, 48G RAM. – SPECjbb2015 augmented with static probes. – Fixed request rate 4 000 reqs/s. (Close to maximum with static probes on our hardware.) – Over 1 200 monitored methods. – Business code of the benchmark. – Practically all methods called frequently enough. – About one minute of dynamic monitoring per method. – Several TBs of raw data per week of run-time.

  38. Results

  39. Overall Overhead of Dynamic Monitoring

  40. Overall Overhead of Dynamic Monitoring Dynamic monitoring pick insert random dynamic method probe Record CPU run for run for utilization with some some dynamic monitoring time time ... … dump from dump from dump from and without it. static static dynamic probes probes probe run for remove some dynamic time probe

  41. Overall Overhead of Dynamic Monitoring 800 400 Without dynamic monitoring Frequency 0 400 With dynamic monitoring 800 70 72 74 76 78 80 82 CPU utilization [%]

  42. Overall Overhead of Dynamic Monitoring 800 400 Without dynamic monitoring Frequency 0 Measuring one method (even a hot one) 400 at a time brings no significant overhead. With dynamic monitoring 800 70 72 74 76 78 80 82 CPU utilization [%]

  43. Time Needed for Just-in-time Recompilation

  44. Time Needed for Just-in-time Recompilation Dynamic monitoring pick insert random dynamic method probe run for run for Record some some Just-in-time compiler time time events here ... dump from dump from dump from … static static dynamic and here. probes probes probe run for remove some dynamic time probe

  45. Time Needed for Just-in-time Recompilation 600 Instrumentation (probe inserted) 300 Frequency 0 300 Deinstrumentation 600 (probe removed) 0 10 20 30 40 Recompilation duration [s] (waited for a minute without JIT activity)

Recommend


More recommend