0
Performance Forensics<br />Alois Reitbauer<br />dynaTrace Software<br />
Forensics<br />forensisadj - "of or before the forum." In Roman times, a criminal charge meant presenting the case before ...
Collecting Evidence<br />
What does this chart tell us<br />Response Time<br />Time<br />
A- Response time problem?<br />B - CPU problem?<br />C - Sync problem?<br />D - Database problem?<br />
We don‘t know<br />
We have to collect our evidence first<br />
Multi-Layered Measurement<br />User-Level<br />Application-Level <br />Container/App Server-Level <br />System/OS/Virtuali...
Understandyourmeasurements<br />Response Time and GC<br />Response Time only<br />
How can this happen?<br />A: Our response time is 2.3 seconds<br />B: Our response time is 1.5 seconds<br />C: Our respons...
The beauty of measures ...<br /> Page Load Time<br /> HTTP Request Time<br />95 % Servlet Time<br />NetworkSniffer<br />...
Types of Measurements<br />Cyclic Measurements<br />Are collected ar regular time intervals<br />Are time based<br />JMX, ...
Types of Statistics<br />Min/Max<br />Average<br />Median<br />Percentiles<br />Use percentiles for event-based measures a...
How you measure is important<br />
Typical Measurements we work with<br />Memory<br />Consumption, GC<br />CPU<br />Usage, Load Average<br />Response Time<br...
A Clearer Picture<br />
What is the problem?<br />We have response times of 6 seconds.<br />We have response times of 6 seconds for 95 percent of ...
Indentify the suspect<br />
Don‘t trust your assumptions<br />
Top 10 Optimizations are bad<br />
Seperate transaction types<br />
Baseline and Delta<br />
Understand the difference<br />
Make the problem reproducable. Otherwise you cannot check whether you fixed it.<br />
When are we done?<br />
... when there are no more why questions<br />
Solving the case<br />
Ensure you solved the real problem<br />
Fight problems not symptoms<br />
When a measure supports a problem. Check for all measures affected by the problem.<br />
Have you tuned at the right place<br />
Watch out for side effects<br />
The usual suspects<br />
Memory and GC<br />State Handling<br />Data Volume<br />Web Tier<br />Database<br />Number of Requests<br />JavaScript<br ...
Remoting Stack<br />Application Developers View<br />Client Application<br />Server Application<br />Stub<br />Facade<br /...
Create Data Locality<br />Reduce Interactions<br />Avoid Protocol Overhead<br />Adjust Interfaces<br />
The DB layer<br />Application<br />Application Code<br />O/RMapping Layer<br />Caching Layer<br />SQLTCP/IP<br />Result Se...
Caching in the DB layer<br />Cross SessionCache<br />Session Caches<br />QueryCache(s)<br />Execution PlanCache<br />Prepa...
Tune LoadingBehavior<br />Optimizeforcaching<br />select … from a,b,c<br />select … from b,c,a<br />… join fetch ….<br />R...
The Web Layer<br />
HighDatavolume<br />Thread-/<br />Connectionpools<br />HTML Rendering<br />HighLatency<br />DatabaseAccess<br />Network<br...
Caching on the Web<br />Serverside <br />Data Cache<br />Server providingCaching Information<br />Cache per Client<br />Se...
Alois Reitbaueralois.reitbauer@dynatrace.com@AloisReitbauerblog.dynatrace.com<br />
Upcoming SlideShare
Loading in...5
×

Performance Forensics - Understanding Application Performance

814

Published on

An introduction to performance measurement and diagnosis

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
814
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
47
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • When there is a murder, suspicious fire or hit-and-run accident, police and rescue workers aren&apos;t the only ones in on the investigation. Forensic scientists also play an important part. They will take samples collected at the scene and analyze them in a forensics laboratory. With a little ingenuity and some very high-tech equipment, forensic scientists can help law enforcement catch even the wiliest perpetrator.Forensic science is a discipline that applies scientific analysis to the justice system, often to help prove the events of a crime. Forensic scientists analyze and interpret evidence found at the crime scene. That evidence can include blood, saliva, fibers, tire tracks, drugs,alcohol, paint chips and firearm residue.
  • http://www.istockphoto.com/stock-photo-13437760-over-a-dead-body.php?st=bc63d6b
  • http://www.istockphoto.com/stock-photo-4608404-microscope.php?st=a02af80
  • Transcript of "Performance Forensics - Understanding Application Performance"

    1. 1. Performance Forensics<br />Alois Reitbauer<br />dynaTrace Software<br />
    2. 2. Forensics<br />forensisadj - "of or before the forum." In Roman times, a criminal charge meant presenting the case before a group of public individuals in the forum. … The individual with the best argument and delivery would determine the outcome of the case. <br />
    3. 3. Collecting Evidence<br />
    4. 4. What does this chart tell us<br />Response Time<br />Time<br />
    5. 5. A- Response time problem?<br />B - CPU problem?<br />C - Sync problem?<br />D - Database problem?<br />
    6. 6. We don‘t know<br />
    7. 7. We have to collect our evidence first<br />
    8. 8. Multi-Layered Measurement<br />User-Level<br />Application-Level <br />Container/App Server-Level <br />System/OS/Virtualization-Level<br />
    9. 9. Understandyourmeasurements<br />Response Time and GC<br />Response Time only<br />
    10. 10. How can this happen?<br />A: Our response time is 2.3 seconds<br />B: Our response time is 1.5 seconds<br />C: Our response time is 6 seconds<br />
    11. 11. The beauty of measures ...<br /> Page Load Time<br /> HTTP Request Time<br />95 % Servlet Time<br />NetworkSniffer<br />Browser<br />Web Server<br />Firewall<br />Application<br />Server<br />Request Time (max)<br />... is that there are so many to choose from<br />
    12. 12. Types of Measurements<br />Cyclic Measurements<br />Are collected ar regular time intervals<br />Are time based<br />JMX, CPU, Memory<br />Event-based measurements<br />Are collected as a request occurs<br />Are transactional<br />Response Times, CPU consumption<br />
    13. 13. Types of Statistics<br />Min/Max<br />Average<br />Median<br />Percentiles<br />Use percentiles for event-based measures and averages (or max) for cyclical measures<br />
    14. 14. How you measure is important<br />
    15. 15. Typical Measurements we work with<br />Memory<br />Consumption, GC<br />CPU<br />Usage, Load Average<br />Response Time<br />Transactions<br />Database<br />Statements, Pool Sizes <br />Communication<br />Calls, Latency, Size, Threads<br />
    16. 16. A Clearer Picture<br />
    17. 17. What is the problem?<br />We have response times of 6 seconds.<br />We have response times of 6 seconds for 95 percent of our users at a load of 500 users with a CPU utilization of 10 percent. <br />
    18. 18. Indentify the suspect<br />
    19. 19. Don‘t trust your assumptions<br />
    20. 20. Top 10 Optimizations are bad<br />
    21. 21. Seperate transaction types<br />
    22. 22. Baseline and Delta<br />
    23. 23. Understand the difference<br />
    24. 24. Make the problem reproducable. Otherwise you cannot check whether you fixed it.<br />
    25. 25. When are we done?<br />
    26. 26. ... when there are no more why questions<br />
    27. 27. Solving the case<br />
    28. 28. Ensure you solved the real problem<br />
    29. 29. Fight problems not symptoms<br />
    30. 30. When a measure supports a problem. Check for all measures affected by the problem.<br />
    31. 31. Have you tuned at the right place<br />
    32. 32. Watch out for side effects<br />
    33. 33. The usual suspects<br />
    34. 34. Memory and GC<br />State Handling<br />Data Volume<br />Web Tier<br />Database<br />Number of Requests<br />JavaScript<br />Latency<br />Data Volume<br />Rendering<br />Comm. Behavior<br />Business Tier<br />O/R Access<br />Memory and GC<br />Browser<br />
    35. 35. Remoting Stack<br />Application Developers View<br />Client Application<br />Server Application<br />Stub<br />Facade<br />Serialization<br />Deserialisation<br />Client Infrastructure<br />Server Infrastructure<br />Networking<br />Networking<br />
    36. 36.
    37. 37. Create Data Locality<br />Reduce Interactions<br />Avoid Protocol Overhead<br />Adjust Interfaces<br />
    38. 38. The DB layer<br />Application<br />Application Code<br />O/RMapping Layer<br />Caching Layer<br />SQLTCP/IP<br />Result Set<br />Statement<br />Connection<br />Connection<br />Database<br />ConnectionPool<br />PreparedStatement<br />.<br />.<br />.<br />PreparedStatement<br />
    39. 39. Caching in the DB layer<br />Cross SessionCache<br />Session Caches<br />QueryCache(s)<br />Execution PlanCache<br />Prepared StatementCache<br />Database<br />PersistenceFramework<br />JDBCLayer<br />
    40. 40. Tune LoadingBehavior<br />Optimizeforcaching<br />select … from a,b,c<br />select … from b,c,a<br />… join fetch ….<br />Reduce DB Calls<br />Define Proper Entities<br />
    41. 41. The Web Layer<br />
    42. 42. HighDatavolume<br />Thread-/<br />Connectionpools<br />HTML Rendering<br />HighLatency<br />DatabaseAccess<br />Network<br />WebService/Backend Calls<br />Many AJAX/HTTP<br />calls<br />Server<br />Browser<br />Browser<br />Browser<br />JavaScriptPerformance<br />
    43. 43. Caching on the Web<br />Serverside <br />Data Cache<br />Server providingCaching Information<br />Cache per Client<br />Server<br />Proxy Cache<br />for Many Clients<br />Clients<br />
    44. 44. Alois Reitbaueralois.reitbauer@dynatrace.com@AloisReitbauerblog.dynatrace.com<br />
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×