Uploaded on

 

More in: Technology , Design
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
508
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
14
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide













































Transcript

  • 1. Optimering av Wordpress Erik Torsner, Load Impact <erik@loadimpact.com>
  • 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. Mäta prestanda med lasttest • Prestanda för en användare != prestanda för många användare
  • 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. Plugins påverkar prestanda Svarstider med 50 samtidiga användare på en server med 1 GB RAM
  • 6. Slut på minne (WPML) • Funkar helt OK upp till ca 40 användare • Vid 50 användare är minnet på servern slut
  • 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. 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. Cache plugins Svarstider med 50 samtidiga användare på en server med 1 GB RAM
  • 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. 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. Verktyg för test och mätning Ragnar Lönn, Load Impact <ragnar@loadimpact.com>
  • 13. 2008 Laddtiden för landningssidan räknas in i AdWords quality score
  • 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. 2009 sänker laddtiden för sin sida från 7 till 2 sekunder
  • 16. 2009 sänker laddtiden för sin sida från 7 till 2 sekunder • +25% page views
  • 17. 2009 sänker laddtiden för sin sida från 7 till 2 sekunder • +25% page views • +7-12% intäkter
  • 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. 2010 Google adds page load time to pagerank algorithm
  • 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. Sidanalys Firebug - http://getfirebug.com/
  • 22. Sidanalys Firebug - http://getfirebug.com/ ySlow - http://developer.yahoo.com/yslow/
  • 23. ySlow
  • 24. ySlow
  • 25. Sidanalys Firebug - http://getfirebug.com/ ySlow - http://developer.yahoo.com/yslow/
  • 26. Sidanalys Firebug - http://getfirebug.com/ ySlow - http://developer.yahoo.com/yslow/ Pagespeed - http://code.google.com/ speed/page-speed/
  • 27. Pagespeed
  • 28. Extern sidanalys
  • 29. Extern sidanalys Pingdom tools, originalet http://pingdom.com/tools
  • 30. Extern sidanalys Pingdom tools, originalet http://pingdom.com/tools • Klarar ej CSS parsning/cascading • Endast från en geografisk punkt
  • 31. Extern sidanalys Load Impact Page analyzer http://loadimpact.com/pageanalyzer.php
  • 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. Extern sidanalys Webpagetest.org PageTest http://webpagetest.org
  • 34. Extern sidanalys Webpagetest.org PageTest http://webpagetest.org • Äkta browsers = 100%-ig emulering • Screenshots & video från rendrering • Endast IE7/IE8
  • 35. Extern sidanalys Webpagetest.org PageTest http://webpagetest.org
  • 36. Extern sidanalys Webpagetest.org PageTest http://webpagetest.org • Jämför rendreringstid för olika sidor
  • 37. Extern sidanalys Browsershots.org http://browsershots.org • Äkta browsers = 100%-ig emulering • Screenshots från många olika OS & browsers
  • 38. Lasttest The Grinder http://grinder.sourceforge.net/
  • 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. Lasttest OpenSTA http://opensta.org/
  • 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. Lasttest ApacheBench (ab) http://httpd.apache.org/docs/2.2/programs/ab.html.org/
  • 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. Lasttest online Load Impact http://loadimpact.com
  • 45. Lasttest online Load Impact http://loadimpact.com • Användarvänligt gränssnitt • Gratis för mindre lasttester • Browseroberoende inspelning mha proxylösning
  • 46. Lasttest online Browsermob http://browsermob.com
  • 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. Lasttest online Loadstorm http://loadstorm.com
  • 49. Lasttest online Loadstorm http://loadstorm.com • Ingen inspelningsfunktionalitet
  • 50. Tack för oss Ragnar Lönn, Load Impact <ragnar@loadimpact.com> Erik Torsner, Load Impact <erik@loadimpact.com>
  • 51. Bonus-slides