Joomla! ExtremePerformanceMitch PirtleJoomla!Day New York CityDecember 4, 2010
Before we beginCoffee?Breakfast?
About this presentation Performance from all aspects How to estimate required needs Capacity planning and growth Group kno...
About me
About meNothing but web since 1995
About meNothing but web since 1995Joomla founder, MongoDB contributor
About meNothing but web since 1995Joomla founder, MongoDB contributorCTO at Totsy.com
About meNothing but web since 1995Joomla founder, MongoDB contributorCTO at Totsy.comComing Soon: MongoDB for Web Developm...
About meNothing but web since 1995Joomla founder, MongoDB contributorCTO at Totsy.comComing Soon: MongoDB for Web Developm...
About meNothing but web since 1995Joomla founder, MongoDB contributorCTO at Totsy.comComing Soon: MongoDB for Web Developm...
About meNothing but web since 1995Joomla founder, MongoDB contributorCTO at Totsy.comComing Soon: MongoDB for Web Developm...
Big Joomla Sites I’ve Done
Big Joomla Sites I’ve DoneQuizilla (Viacom/MTV Networks)Joomla framework, massive dataset and users
Big Joomla Sites I’ve DoneQuizilla (Viacom/MTV Networks)Joomla framework, massive dataset and usersFood2 (Scripps Publishi...
Big Joomla Sites I’ve DoneQuizilla (Viacom/MTV Networks)Joomla framework, massive dataset and usersFood2 (Scripps Publishi...
What is performance?
Performance != Scale
Performance:How fast can the page load?
Performance:How fast can the page load?Scale:How many people can I throw at it?
Aspects of Performance
Aspects of PerformanceServer output
Aspects of PerformanceServer outputNetwork throughput
Aspects of PerformanceServer outputNetwork throughputBrowser footprint
Aspects of Scale
Aspects of ScaleServer output
Aspects of ScaleServer outputNetwork throughput
Aspects of ScaleServer outputNetwork throughputBrowser footprint
Best Practice - Baseline
Best Practice - Baseline Stock install on your systems
Best Practice - Baseline Stock install on your systems Browser speed test
Best Practice - Baseline Stock install on your systems Browser speed test Distributed load test
Best Practice - Baseline Stock install on your systems Browser speed test Distributed load test Monitor server load throug...
Fix: Server Output
Fix: Server Output Choose extensions carefully, after testing performance baseline
Fix: Server Output Choose extensions carefully, after testing performance baseline PHP opcode cacher - XCache, APC
Fix: Server Output Choose extensions carefully, after testing performance baseline PHP opcode cacher - XCache, APC Tune My...
Fix: Server Output Choose extensions carefully, after testing performance baseline PHP opcode cacher - XCache, APC Tune My...
Fix: Network Throughput
Fix: Network Throughputgzip text content - HTML, CSS and Javascript
Fix: Network Throughputgzip text content - HTML, CSS and JavascriptContent Delivery Network (CDN)
Fix: Network Throughputgzip text content - HTML, CSS and JavascriptContent Delivery Network (CDN)Minify CSS
Fix: Browser Footprint
Fix: Browser Footprint It all starts with the template!
Fix: Browser Footprint It all starts with the template! Consolidate Javascript and CSS includes
Fix: Browser Footprint It all starts with the template! Consolidate Javascript and CSS includes Limit number of Javascript...
Fix: Browser Footprint It all starts with the template! Consolidate Javascript and CSS includes Limit number of Javascript...
Fix: Scaling Issues
Fix: Scaling Issues Dedicated server Separate webserver from dataserver Multiple webservers/dataservers Multiple data cent...
What’s a Developer to do?
Developer ChecklistYou’re using all the framework classes instead ofcrappy, homegrown code right?Are your extensions reall...
Distributed Systems IssuesHard to push code updatesHard to keep data consistentHard to debug issuesAdditional effort to de...
Tools
Firebughttp://getfirebug.com/
Yahoo! YSlowhttp://developer.yahoo.com/yslow/
Seleniumhttp://seleniumhq.org/
Services
Scouthttps://scoutapp.com/
New Relichttp://www.newrelic.com/
Neustarhttp://www.neustar.biz/
Reference Materials
MySQL Performance Bloghttp://www.mysqlperformanceblog.com/
Time for my favorite gameStump the Nerd™
Thanks!Email: spacemonkey@mongodb.orgTwitter: @mitchitizedWeb: http://www.spacemonkeylabs.comSlides: http://www.slideshare...
Joomla Extreme Performance
Upcoming SlideShare
Loading in …5
×

Joomla Extreme Performance

3,376 views

Published on

This is my deck from the Joomla Extreme Performance talk at Joomla!Day 2010 in NYC. Video to follow.

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

No Downloads
Views
Total views
3,376
On SlideShare
0
From Embeds
0
Number of Embeds
19
Actions
Shares
0
Downloads
0
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Joomla Extreme Performance

    1. 1. Joomla! ExtremePerformanceMitch PirtleJoomla!Day New York CityDecember 4, 2010
    2. 2. Before we beginCoffee?Breakfast?
    3. 3. About this presentation Performance from all aspects How to estimate required needs Capacity planning and growth Group knowledge sharing, open discussion
    4. 4. About me
    5. 5. About meNothing but web since 1995
    6. 6. About meNothing but web since 1995Joomla founder, MongoDB contributor
    7. 7. About meNothing but web since 1995Joomla founder, MongoDB contributorCTO at Totsy.com
    8. 8. About meNothing but web since 1995Joomla founder, MongoDB contributorCTO at Totsy.comComing Soon: MongoDB for Web Development
    9. 9. About meNothing but web since 1995Joomla founder, MongoDB contributorCTO at Totsy.comComing Soon: MongoDB for Web DevelopmentComing Soon: Extreme Joomla! Performance
    10. 10. About meNothing but web since 1995Joomla founder, MongoDB contributorCTO at Totsy.comComing Soon: MongoDB for Web DevelopmentComing Soon: Extreme Joomla! PerformanceHigh-traffic projects (Jetsetter, MTV, Food Networks)
    11. 11. About meNothing but web since 1995Joomla founder, MongoDB contributorCTO at Totsy.comComing Soon: MongoDB for Web DevelopmentComing Soon: Extreme Joomla! PerformanceHigh-traffic projects (Jetsetter, MTV, Food Networks)Husband, dad, skate punk, metalcore bassist
    12. 12. Big Joomla Sites I’ve Done
    13. 13. Big Joomla Sites I’ve DoneQuizilla (Viacom/MTV Networks)Joomla framework, massive dataset and users
    14. 14. Big Joomla Sites I’ve DoneQuizilla (Viacom/MTV Networks)Joomla framework, massive dataset and usersFood2 (Scripps Publishing/Food Network)Full CMS stack, tons of integration and rich media
    15. 15. Big Joomla Sites I’ve DoneQuizilla (Viacom/MTV Networks)Joomla framework, massive dataset and usersFood2 (Scripps Publishing/Food Network)Full CMS stack, tons of integration and rich mediaJetsetter (Gilt Groupe)Full CMS stack, all custom extensions
    16. 16. What is performance?
    17. 17. Performance != Scale
    18. 18. Performance:How fast can the page load?
    19. 19. Performance:How fast can the page load?Scale:How many people can I throw at it?
    20. 20. Aspects of Performance
    21. 21. Aspects of PerformanceServer output
    22. 22. Aspects of PerformanceServer outputNetwork throughput
    23. 23. Aspects of PerformanceServer outputNetwork throughputBrowser footprint
    24. 24. Aspects of Scale
    25. 25. Aspects of ScaleServer output
    26. 26. Aspects of ScaleServer outputNetwork throughput
    27. 27. Aspects of ScaleServer outputNetwork throughputBrowser footprint
    28. 28. Best Practice - Baseline
    29. 29. Best Practice - Baseline Stock install on your systems
    30. 30. Best Practice - Baseline Stock install on your systems Browser speed test
    31. 31. Best Practice - Baseline Stock install on your systems Browser speed test Distributed load test
    32. 32. Best Practice - Baseline Stock install on your systems Browser speed test Distributed load test Monitor server load throughout
    33. 33. Fix: Server Output
    34. 34. Fix: Server Output Choose extensions carefully, after testing performance baseline
    35. 35. Fix: Server Output Choose extensions carefully, after testing performance baseline PHP opcode cacher - XCache, APC
    36. 36. Fix: Server Output Choose extensions carefully, after testing performance baseline PHP opcode cacher - XCache, APC Tune MySQL - query cache
    37. 37. Fix: Server Output Choose extensions carefully, after testing performance baseline PHP opcode cacher - XCache, APC Tune MySQL - query cache Tune webserver
    38. 38. Fix: Network Throughput
    39. 39. Fix: Network Throughputgzip text content - HTML, CSS and Javascript
    40. 40. Fix: Network Throughputgzip text content - HTML, CSS and JavascriptContent Delivery Network (CDN)
    41. 41. Fix: Network Throughputgzip text content - HTML, CSS and JavascriptContent Delivery Network (CDN)Minify CSS
    42. 42. Fix: Browser Footprint
    43. 43. Fix: Browser Footprint It all starts with the template!
    44. 44. Fix: Browser Footprint It all starts with the template! Consolidate Javascript and CSS includes
    45. 45. Fix: Browser Footprint It all starts with the template! Consolidate Javascript and CSS includes Limit number of Javascript frameworks
    46. 46. Fix: Browser Footprint It all starts with the template! Consolidate Javascript and CSS includes Limit number of Javascript frameworks Remove inline styling, push to CSS
    47. 47. Fix: Scaling Issues
    48. 48. Fix: Scaling Issues Dedicated server Separate webserver from dataserver Multiple webservers/dataservers Multiple data centers
    49. 49. What’s a Developer to do?
    50. 50. Developer ChecklistYou’re using all the framework classes instead ofcrappy, homegrown code right?Are your extensions really using JCache properly?Are you running explain plans on your SQL statementsand checking for index and lock contention?You’re using MySQL’s slow query log, right?
    51. 51. Distributed Systems IssuesHard to push code updatesHard to keep data consistentHard to debug issuesAdditional effort to developmentLimits options of existing extensions and services
    52. 52. Tools
    53. 53. Firebughttp://getfirebug.com/
    54. 54. Yahoo! YSlowhttp://developer.yahoo.com/yslow/
    55. 55. Seleniumhttp://seleniumhq.org/
    56. 56. Services
    57. 57. Scouthttps://scoutapp.com/
    58. 58. New Relichttp://www.newrelic.com/
    59. 59. Neustarhttp://www.neustar.biz/
    60. 60. Reference Materials
    61. 61. MySQL Performance Bloghttp://www.mysqlperformanceblog.com/
    62. 62. Time for my favorite gameStump the Nerd™
    63. 63. Thanks!Email: spacemonkey@mongodb.orgTwitter: @mitchitizedWeb: http://www.spacemonkeylabs.comSlides: http://www.slideshare.net/spacemonkeylabs

    ×