OPTIMERA STHLM! Loadimpact

720 views

Published on

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

  • Be the first to like this

No Downloads
Views
Total views
720
On SlideShare
0
From Embeds
0
Number of Embeds
21
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide













































  • OPTIMERA STHLM! Loadimpact

    1. 1. Optimering av Wordpress Erik Torsner, Load Impact <erik@loadimpact.com>
    2. 2. Bakgrund • Bakgrund – varför titta på problemet ? • Mer än 22 miljoner bloggar kör Wordpress • Oändligt med plugins – kvaliteten varierar • Wordpress ”kan allt” • Många Wordpressbloggar har problem • Varför har Wordpress prestandaproblem? • Det är ju PHP... en request = en process • Oändligt med plugins – kvaliteten varierar • Wordpress ”kan allt”
    3. 3. Mäta prestanda med lasttest • Prestanda för en användare != prestanda för många användare
    4. 4. Kort om WP-prestanda • WP har OK databasindex per default – passar bra för mindre siter • Många plugins som ändrar databasen beter sig ganska städat, vettiga index osv. • WP förbrukar dock en del minne. Ca 16 Mb 'out of the box' • Många populära plugins ökar på minnesförbrukningen aggressivt • T.ex All-in-one-SEO,Post-Plugin Library och Similar Posts lägger på ca 1Mb vardera • WPML – lägger på massvis. Upp till 70 Mb per request • I många av våra tester visar det sig att det är minnet som är den trånga resursen i en Wordpressinstallation
    5. 5. Plugins påverkar prestanda Svarstider med 50 samtidiga användare på en server med 1 GB RAM
    6. 6. Slut på minne (WPML) • Funkar helt OK upp till ca 40 användare • Vid 50 användare är minnet på servern slut
    7. 7. Hur förbättra prestanda? Steg 1: Minimera resurser • Databas • Är inblandad i alla requests. Har den rätt inställingar, tillräckligt med minne osv? • Minne • Trång resurs för många WP-installationer • Lägg en memory_get_peak_usage() i din footer • CPU • Klassisk flaskhals. Dock troligen inte särskilt vanlig orsak till dålig WP-prestanda.
    8. 8. Hur förbättra prestanda? Steg 2: Cacha • Cacha inte förrän du vet varför du har prestandaproblem. Fixa inte en fuktskada med spackel och färg... • Fundera igenom potentiella nackdelar först • Fungerar dina andra plugin? • Det finns (minst) ett tiotal cache-plugin till Wp 2.9.1 • Hyper cache, W3 Total cache, WP Super cache, WP Cache, WP Widget cache, DB cache, DB cache reloaded, 1 Blog cacher..... • Vi har testat 5st ordentligt
    9. 9. Cache plugins Svarstider med 50 samtidiga användare på en server med 1 GB RAM
    10. 10. Hur fungerar W3TC? • Gör allt rätt • Komprimerar HTML med gzip • Minifierar scrips och stylesheets • Bakar ihop flera requests till en enda, t.ex för script • Lägger bilder och annan media på CDN • Kortsluter PHP-stacken • Aggressiv cache som får Apache att serva HTML utan att behöva dra igång PHP • Cachar ”allt annat” på disk eller via memcached. • Stödjer även opcode cachening via bl.a APC
    11. 11. Mer läsning Om databasoptimering • http://www.mysqlperformanceblog.com/ Om cachemoduler för Wordpress • http://www.tutorial9.net/web-tutorials/wordpress-caching-whats-the-best-caching-plugin/ • http://loadimpact.com/blog/tag/wordpress Om minne för Wordpress • http://lildude.co.uk/wordpress-is-a-memory-hog • http://wordpress.org/extend/plugins/tpc-memory-usage/ • http://webjawns.com/2009/08/eaccelerator-reduces-wordpress-memory-usage/
    12. 12. Verktyg för test och mätning Ragnar Lönn, Load Impact <ragnar@loadimpact.com>
    13. 13. 2008 Laddtiden för landningssidan räknas in i AdWords quality score
    14. 14. 2008 Laddtiden för landningssidan räknas in i AdWords quality score Snabbare websida = fler besökare hittar din sajt via AdWords-annonser
    15. 15. 2009 sänker laddtiden för sin sida från 7 till 2 sekunder
    16. 16. 2009 sänker laddtiden för sin sida från 7 till 2 sekunder • +25% page views
    17. 17. 2009 sänker laddtiden för sin sida från 7 till 2 sekunder • +25% page views • +7-12% intäkter
    18. 18. 2009 sänker laddtiden för sin sida från 7 till 2 sekunder • +25% page views • +7-12% intäkter • -50% infrastrukturkostnad
    19. 19. 2010 Google adds page load time to pagerank algorithm
    20. 20. 2010 Google adds page load time to pagerank algorithm Snabbare websida = fler besökare hittar din sajt när de söker på Google
    21. 21. Sidanalys Firebug - http://getfirebug.com/
    22. 22. Sidanalys Firebug - http://getfirebug.com/ ySlow - http://developer.yahoo.com/yslow/
    23. 23. ySlow
    24. 24. ySlow
    25. 25. Sidanalys Firebug - http://getfirebug.com/ ySlow - http://developer.yahoo.com/yslow/
    26. 26. Sidanalys Firebug - http://getfirebug.com/ ySlow - http://developer.yahoo.com/yslow/ Pagespeed - http://code.google.com/ speed/page-speed/
    27. 27. Pagespeed
    28. 28. Extern sidanalys
    29. 29. Extern sidanalys Pingdom tools, originalet http://pingdom.com/tools
    30. 30. Extern sidanalys Pingdom tools, originalet http://pingdom.com/tools • Klarar ej CSS parsning/cascading • Endast från en geografisk punkt
    31. 31. Extern sidanalys Load Impact Page analyzer http://loadimpact.com/pageanalyzer.php
    32. 32. Extern sidanalys Load Impact Page analyzer http://loadimpact.com/pageanalyzer.php • Emulerar en mängd olika klienter • Simulerar begränsad bandbredd • Endast från en geografisk punkt
    33. 33. Extern sidanalys Webpagetest.org PageTest http://webpagetest.org
    34. 34. Extern sidanalys Webpagetest.org PageTest http://webpagetest.org • Äkta browsers = 100%-ig emulering • Screenshots & video från rendrering • Endast IE7/IE8
    35. 35. Extern sidanalys Webpagetest.org PageTest http://webpagetest.org
    36. 36. Extern sidanalys Webpagetest.org PageTest http://webpagetest.org • Jämför rendreringstid för olika sidor
    37. 37. Extern sidanalys Browsershots.org http://browsershots.org • Äkta browsers = 100%-ig emulering • Screenshots från många olika OS & browsers
    38. 38. Lasttest The Grinder http://grinder.sourceforge.net/
    39. 39. Lasttest The Grinder http://grinder.sourceforge.net/ • Javabaserad • Scriptas i Java eller Python (Jython) • Inspelningsmöjligheter • Enkelt API • Aktiv användarbas • Inget medföljande GUI för konfiguration eller resultatvisning
    40. 40. Lasttest OpenSTA http://opensta.org/
    41. 41. Lasttest OpenSTA http://opensta.org/ • Windowsbaserad (MFC VC++ Win32), CORBA • Scriptas i eget scriptspråk (SCL) • Inbyggt GUI för konfig/visualisering av resultat • Tidigare versioner har haft stabilitetsproblem
    42. 42. Lasttest ApacheBench (ab) http://httpd.apache.org/docs/2.2/programs/ab.html.org/
    43. 43. Lasttest ApacheBench (ab) http://httpd.apache.org/docs/2.2/programs/ab.html.org/ • Enkel, kommandoradsbaserad applikation • Inkluderad i Apache-distributionen • Inga scriptmöjligheter
    44. 44. Lasttest online Load Impact http://loadimpact.com
    45. 45. Lasttest online Load Impact http://loadimpact.com • Användarvänligt gränssnitt • Gratis för mindre lasttester • Browseroberoende inspelning mha proxylösning
    46. 46. Lasttest online Browsermob http://browsermob.com
    47. 47. Lasttest online Browsermob http://browsermob.com • Inspelning med Firefox & Selenium • Lasttest med äkta eller emulerade webläsare • Stöder enbart Firefox för inspelning/ uppspelning
    48. 48. Lasttest online Loadstorm http://loadstorm.com
    49. 49. Lasttest online Loadstorm http://loadstorm.com • Ingen inspelningsfunktionalitet
    50. 50. Tack för oss Ragnar Lönn, Load Impact <ragnar@loadimpact.com> Erik Torsner, Load Impact <erik@loadimpact.com>
    51. 51. Bonus-slides

    ×