Expert Days 2011: The VP R&D Open Seminar: Systems Performance Seminar

10,209 views

Published on

As technical leader you face a challenge: more traffic, more users, more connected systems and more features. The results can be lack of system performance. If you want to be ready for the day of doom, if you want to solve issues before business will get mad or just want to be the hero of the day, this is the workshop for you. In this workshop we'll cover all aspects of modern web systems and will analyze all the things that can go wrong. More important we will understand what is a clutter and what should be taken care of using a set of simple tools and steps. Among the covered items in this workshop: databases, your code, application servers, web servers, system aspects, storages, network and even the browser.

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

No Downloads
Views
Total views
10,209
On SlideShare
0
From Embeds
0
Number of Embeds
8,642
Actions
Shares
0
Downloads
1
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • The world is changing more and more fast You have to minimize NRE You must support unexpected demand You must provide top service (people now leaves cell operator after single incident, rather then 5, 10 years ago Firms a vulnerable – Citi worth 20Bill $ instead of 200 Bill a year ago Break and Mortar bookstores 15 years ago and Amazon…. Will it happen again to banks, insurance, real estate agencies… IS YOUR MARKET THE NEXT FOR PENETRATION – Finance? Real Estate? How to win a rival that is not existing yet? http://www.johnmwillis.com/ibm/cloud-computing-and-the-enterprise/ -
  • Start with nothing: storage, FW, LB, Server and grow… Can buy servers for more than hour
  • Expert Days 2011: The VP R&D Open Seminar: Systems Performance Seminar

    1. 1. Where the H#@$ is My Performance Bottleneck? [email_address] http://blogs.microsoft.co.il/blogs/vprnd http://top-performance.blogspot.com
    2. 2. Presentation Objectives http://www.webperformancetoday.com/2010/06/15/everything-you-wanted-to-know-about-web-performance/
    3. 3. Why Do I Care? <ul><li>From 0 to 100 (US mass adaptation) </li></ul><ul><ul><li>Phone: 100 yrs </li></ul></ul><ul><ul><li>Radio: 40 yrs </li></ul></ul><ul><ul><li>TV: 30 yrs </li></ul></ul><ul><ul><li>Mobile: 20 yrs </li></ul></ul><ul><ul><li>Internet: 10 yrs </li></ul></ul><ul><ul><li>Facebook: 2 yrs </li></ul></ul>
    4. 4. 100K New Users/Week
    5. 5. The Network Effect
    6. 6. Motivation
    7. 7. Where Are We?
    8. 8. The Prime Suspect
    9. 9. Know Your Business
    10. 10. Assumptions…
    11. 11. IS IT THE SERVER OR THE CLIENT?
    12. 12. Waterfall Time!
    13. 13. Better a Neighbor Nearby Than a Brother Far Away http://www.tcpipguide.com/free/t_TCPWindowSizeAdjustmentandFlowControl.htm
    14. 14. Network Effect Solutions <ul><li>CDN </li></ul><ul><li>Compression; Minification; Sprites; Embed </li></ul>http://www.akamai.com/stateoftheinternet/
    15. 15. Show Time!
    16. 16. STEP 2: IT'S DEFINITELY IN THE CODE!
    17. 17. Code Profilers
    18. 18. Code Anti Patterns <ul><li>Do It Yourself Infrastructure </li></ul><ul><ul><li>Cache </li></ul></ul><ul><ul><li>Data Stores </li></ul></ul><ul><li>Locks and Semaphores </li></ul><ul><li>Code that Cannot be Tested/Automated </li></ul>
    19. 19. Load Stress
    20. 20. STEP 3: WHERE DO WE STORE THE DATA? http://1userverrack.net/2011/06/08/hp-blade-server-9/
    21. 21. SQL Server Alerts <ul><li>Connection Leak: >200 </li></ul><ul><li>Object Execution Times </li></ul><ul><li>Locks </li></ul>
    22. 22. SQL Server Execution Time Graphs
    23. 23. SQL Server Execution Time Details
    24. 24. Activity Monitor
    25. 25. Database Anti Patterns <ul><li>Software Engineering Patterns </li></ul><ul><li>ORM </li></ul><ul><li>Blobs </li></ul><ul><li>No Denormalization </li></ul><ul><li>Nested/Complex SQL Statements </li></ul><ul><li>Too Few/Many Indexes </li></ul>
    26. 26. ALTERNATIVE STRATEGIES FOR BIG DATA CASES
    27. 27. Strategy A - Sharding
    28. 28. Strategy B – In Memory Databases
    29. 29. 700 Inserts/Sec In Memory Engine 3000 Inserts/Sec InnoDB Engine 700 Inserts/Sec Amazon AWS Standard Large Instance
    30. 30. Strategy C – MapReduce http://blogs.microsoft.co.il/blogs/vprnd
    31. 31. Strategy D - NoSQL <ul><li>insert </li></ul><ul><li>get </li></ul><ul><ul><li>multiget </li></ul></ul><ul><li>remove </li></ul><ul><li>truncate </li></ul><Key, Value> http://wiki.apache.org/cassandra/API
    32. 32. Sharding Again
    33. 33. Vertical Sharding
    34. 34. Horizontal Sharding <ul><li>Static Hashing </li></ul><ul><ul><li>Complex growth </li></ul></ul><ul><ul><li>Simple </li></ul></ul>Mod 10 = 0 Mod 10 = 1 Mod 10 = 2 Mod 10 = 3 Mod 10 = 4 Mod 10 = 5 Mod 10 = 6 Mod 10 = 7 Mod 10 = 8 Mod 10 = 9
    35. 35. <ul><li>Key locations are defined in a directory </li></ul><ul><ul><li>Simple growth </li></ul></ul><ul><ul><li>Directory is SPOF </li></ul></ul><ul><ul><li>The Directory Can be Very Large </li></ul></ul>Horizontal Sharding
    36. 36. Horizontal Sharding <ul><li>Static Hashing with Directory Mapping </li></ul><ul><ul><li>Simple Growth </li></ul></ul><ul><ul><li>The Small Directory Can be Cached on Each App Server </li></ul></ul>Mod 1000 = 4
    37. 37. Horizontal Sharding <ul><li>Each key is signed by the DB# on creation </li></ul><ul><ul><li>Simple growth </li></ul></ul><ul><ul><li>The Key Store Can be Cached on Each App Server </li></ul></ul>
    38. 38. STEP 4: SYSTEM ASPECTS
    39. 39. Network <ul><li>WireShark </li></ul><ul><li>Ping </li></ul><ul><li>Tracert </li></ul><ul><li>Netstat –na </li></ul><ul><li>WAN </li></ul>
    40. 40. Storage <ul><li>Database </li></ul><ul><li>I/O </li></ul><ul><li>NAS </li></ul><ul><li>SAN </li></ul><ul><li>SSD </li></ul>
    41. 41. Monitoring
    42. 42. The Bottom Line: Grow ∞ <ul><li>Thank you! </li></ul><ul><li>and Keep Performing! </li></ul><ul><li>Moshe Kaplan </li></ul>

    ×