die performance von webseiten optimieren thomas lohner hosting für fortgeschrittene
TRANSCRIPT
Die Performance von Webseiten
optimieren
Thomas Lohner
Hosting für Fortgeschrittene
•Was wird optimiert?
•An welcher Stelle wird optimiert?
•Beispiele
•Tipps, Tricks, Urban Legends
Was wird optimiert?
Was wird optimiert?
•langsam / schlecht programmiert
Was wird optimiert?
•langsam / schlecht programmiert
Was wird optimiert?
•langsam / schlecht programmiert
•Welche Inhalte werden am häufigsten aufgerufen?
Was wird optimiert?
•langsam / schlecht programmiert
•Welche Inhalte werden am häufigsten aufgerufen?
Was wird optimiert?
•langsam / schlecht programmiert
•Welche Inhalte werden am häufigsten aufgerufen?
•D. M. D. A.
Was wird optimiert?
•langsam / schlecht programmiert
•Welche Inhalte werden am häufigsten aufgerufen?
•D. M. D. A.
Wo wird optimiert?
Wo wird optimiert?
DB PHP HTML
Wo wird optimiert?
DB PHP HTML
Beispiel:
www.macnews.de
6 Mio. Seitenaufrufe
Wo wird optimiert?
DB PHP HTML
DB PHP HTML x 4
Beispiel:
www.macnews.de
6 Mio. Seitenaufrufe
Wo wird optimiert?
DB PHP HTML
DB PHP HTML x 4
DB PHP HTML x 25
Beispiel:
www.macnews.de
6 Mio. Seitenaufrufe
Wo wird optimiert?
DB PHP HTML
DB PHP HTML x 4
DB PHP HTML x 25
(bei Wordpress x 100 )
Beispiel:
www.macnews.de
6 Mio. Seitenaufrufe
Beispiele
Beispiele
•golem.de
28 Mio. Seitenaufrufe pro Monat
Beispiele
•golem.de
28 Mio. Seitenaufrufe pro Monat
2 x MySQL3 x Apache + PHP1 x CMS
Beispiele
•golem.de
CMSHTML
Datenbank
Webserver
Beispiele
•Leichtathletik WM 2009
Beispiele
•Leichtathletik WM 20092 x MySQL2 x Apache + PHPnginx als transparenter Cache+ SpoonfeedingStatische Inhalte aus dem CDN
Beispiele
•Leichtathletik WM 2009
DB CMS / PHP nginxUserUserUserCDN
Beispiele
•nginx als transparenter Cache
Beispiele
•nginx als transparenter Cache
nginxBrowserAnfrage
Beispiele
•nginx als transparenter Cache
nginx hit CacheBrowserAnfrage
Beispiele
•nginx als transparenter Cache
nginx hit CacheAnfrage
Antwort
Beispiele
•nginx als transparenter Cache
nginx hit
WebserverCMSDatenbank
CacheAnfrage
Antwortmiss
Spoonfeeding
Spoonfeeding
Webserver
User 1
User 2
User 3
DSL
UMTS
Spoonfeeding
Webserver
User 1
User 2
User 3
DSL
Webserver
User 1
User 2
User 3
nginx
localhostoder GBit
DSL
UMTS
UMTS
Aber ich habe dynamische
Inhalte!?
Aber ich habe dynamische
Inhalte!?•„Hallo Thomas! Logout.“
•Ansicht-Switcher
•Kommentare
•„Hallo Thomas! Logout.“
•„Hallo Thomas! Logout.“
Username in Cookie speichernund per Javascript auslesen.
•Ansicht-Switcher (Farben, Inhalte)
•Ansicht-Switcher (Farben, Inhalte)
Für jede Ansicht eine URL anlegen:site.com/fulltext/site.com/headlines/site.com/thisweek/
•Ansicht-Switcher (Farben, Inhalte)
Für jede Ansicht eine URL anlegen:site.com/fulltext/site.com/headlines/site.com/thisweek/
URL in Cookie speichern, perJavascript auslesen und weiterleiten
•Kommentare
•KommentareArtikel als HTML ausliefern und Platzhalter für Kommentare verwenden:
<div class=‘hidden‘ id=‘comments‘></div>
•KommentareArtikel als HTML ausliefern und Platzhalter für Kommentare verwenden:
<div class=‘hidden‘ id=‘comments‘></div>Kommentare per Ajax nachladen.
•KommentareArtikel als HTML ausliefern und Platzhalter für Kommentare verwenden:
<div class=‘hidden‘ id=‘comments‘></div>Kommentare per Ajax nachladen.Noch besser:Kommentare via Facebook einbinden.
Tipps, Tricks, Märchen
• PHP ist für PHP
• Yahoo‘s 34 rules for speeding up your Website
• Lass andere die Arbeit machen
• „Refactor later“
• NoSQL, Alternativen zu MySQL
• „Die Datenbank ist der Flaschenhals“
• „Frameworks fressen Performance“
• „Hardware ist billiger als Entwickler“
Tipps, Tricks, Märchen
•PHP ist für PHP
<img src=‘img.php?path=/media/logo.gif‘>
Tipps, Tricks, Märchen
•PHP ist für PHP
<img src=‘img.php?path=/media/logo.gif‘>
Apache + PHP = 15 MB RAM
Tipps, Tricks, Märchen
•PHP ist für PHP
<img src=‘img.php?path=/media/logo.gif‘>
Apache + PHP = 15 MB RAMApache = 5 MB RAMnoch besser: lighty / nginx
Tipps, Tricks, Märchen
•Yahoo‘s 34 rules for speeding up your Website
Tipps, Tricks, Märchen
•Yahoo‘s 34 rules for speeding up your Website
Tipps, Tricks, Märchen
• Lass andere die Arbeit machen
Tipps, Tricks, Märchen
• Lass andere die Arbeit machen
2 PHP Webservervs.
4000 Browser
Tipps, Tricks, Märchen
• „Refactor later“
Tipps, Tricks, Märchen
• „Refactor later“
Jetzt oder nie!
Tipps, Tricks, Märchen
• NoSQL, Alternativen zu MySQL
CouchDBMongoDBSimpleDB (Amazon)Project VoldemortCassandraRedis
Tipps, Tricks, Märchen
• „Die Datenbank ist der Flaschenhals“
Tipps, Tricks, Märchen
• „Die Datenbank ist der Flaschenhals“
Offensichtlich vs. Tatsächlich
Tipps, Tricks, Märchen
• „Frameworks fressen Performance“
Tipps, Tricks, Märchen
• „Frameworks fressen Performance“
Total costsWartbarkeitCoding StyleEinarbeitungszeit
Tipps, Tricks, Märchen
• „Frameworks fressen Performance“
Total costsWartbarkeitCoding StyleEinarbeitungszeit
Fazit: Framework verbessern / optimieren
Tipps, Tricks, Märchen
• „Hardware ist billiger als Entwickler“
Tipps, Tricks, Märchen
• „Hardware ist billiger als Entwickler“
Tipps, Tricks, Märchen
• „Hardware ist billiger als Entwickler“
Server verlieren Wert.
Menschen werden besser.
thx, Cheers!, good night.
Hosting für Fortgeschrittene