Case Study - Apple Keynote Piekbelasting iPhoneclub.nl

Door: Xls Hosting  01-07-2008
Trefwoorden: Netwerk, Iphone, Wordpress

De website iPhoneclub.nl is een populaire weblog over de Apple iPhone waar meerdere malen per dag nieuws over de Apple iPhone verschijnt. Deze weblog wordt steeds drukker bezocht naarmate het marktaandeel van de iPhone toeneemt en andere websites de iPhoneclub ook meer als autoriteit gaan zien. De website iPhoneclub.nl draait op een Xen VPS bij XLS Hosting.

De weblog maakt gebruik van het open-source softwarepakket WordPress. Dit is veelgebruikte bloggingsoftware met uitgebreide mogelijkheden. Echter, als er sprake is van drukte op de website, zoals bij iPhoneclub regelmatig voorkomt, moet er goed worden nagedacht over de performance.

Voor de Apple Keynote van juni 2008 werd een groot aantal extra bezoekers verwacht, waarvoor de volgende optimalisaties (al dan niet in een eerder stadium) zijn toegepast:

* WordPress caching activeren en optimaliseren: Er is WP Super Cache op de website geïnstalleerd om de serverload te verlagen. Dit script werkt alleen met HTTP GET requests en niet met HEAD requests, wat problemen kan opleveren met browser caches, proxies en monitoring software. Er is een aanpassing gedaan om de WordPress cache ook actief te maken voor HEAD requests.

* Databaseload verlagen door betere indices (indexering op tabellen): WP-Polls (een poll-plugin voor WordPress) en reacties (comments) op blogpostings leverden enorm veel databaseload op. Het bleek dat er nog onvoldoende gebruik werd gemaakt van het indiceren van tabellen. Vervolgens zijn indices op enkele veelgebruikte tabellen aangebracht (en in een veel eerder stadium is WP-Polls weer van de blog verwijderd). Hiernaast zijn de instellingen voor de MySQL query cache opgewaardeerd.

* Optimalisatie webserver: Een aantal belangrijke variabelen in de configuratie van Apache heeft potentieel een enorme impact op de performance van een drukke site. Deze variabelen moeten worden afgesteld op de server en de website, aangezien ze elkaar ook weer beïnvloeden. Denk hierbij aan variabelen als ConnectionTimeout (bepaalt wanneer een verbinding verbroken wordt), KeepAlive (bepaalt of een goede verbinding afgesloten wordt nadat de taak volbracht is) en MaxChildren (het maximale aantal Apache child-processen).

Andere cachingmogelijkheden naast WP Super Cache, zoals eAccelerator (een PHP opcode cacher) en memcached (zet de database in RAM) zijn nog niet gebruikt door compatibiliteitsproblemen met andere scripts zoals actief op iPhoneclub.

Tijdlijn Apple Keynote

16.00 Xen VPS vergroot van 4GB RAM en 3 cores naar 16GB RAM en 4 cores.

19.00 Apple keynote begint.

19.05 Website wordt langzaam drukker met ongeveer 350 gelijktijdige Apache-processen. Dit betekent dat er waarschijnlijk al vele duizenden gebruikers op de site zijn.

19.10 Website lijkt even slecht bereikbaar, maar dit blijkt een meting vanaf 1 locatie te zijn.

19.50 website heeft nu zo’n 650 gelijktijdige connecties; de 4 CPU cores worden bijna helemaal opgesoupeerd en er is zo’n 14GB RAM in gebruik. Het duurt 4 à 5 seconden om de website te laden en dat is te lang. Veel van de belasting blijkt door het open-source script OpenX veroorzaakt te worden, wat wordt gebruikt om de roterende advertentiebanners op te halen van Google (AdSense) en van het filesysteem.

20.05 De website blijft traag en de VPS wordt ge-upgrade naar 20GB RAM en 8 Cores. Hiervan worden vrijwel onmiddellijk 18GB RAM en 6 cores gebruikt. De website laadt nu binnen 1 tot 1.5 seconden. Het aantal gelijktijdige connecties stijgt nu door naar 850.

20.15 De klant besluit het roteren van advertenties met OpenX te decactiveren en de belangrijkste advertenties hard in de template te zetten. De load daalt vrijwel onmiddellijk met de helft en de website is binnen 200 miliseconden bereikbaar.

20.50 Apple Keynote afgelopen. Het aantal connecties begint snel te dalen.


Conclusie

Het significant vergroten van de VPS heeft verreweg het meeste verkeer goed op kunnen vangen. De roterende advertenties met behulp van OpenX leverden echter problemen op. Het lijkt erop dat als er banners lokaal moeten worden opgehaald de pagina telkens opnieuw moet worden opgebouwd. Dit zorgt er dan voor dat WP Super Cache niet goed haar werk kan doen.

Ervan uitgaande dat een klant toch OpenX en WordPress wil gebruiken in combinatie met lokale banners kan de zogenaamde local mode tag van OpenX worden gebruikt. Deze tag zorgt ervoor dat OpenX lokale banners “serverside” selecteert in plaats van pas als de pagina wordt opgebouwd. Deze functionaliteit zal wel nauwkeurig met WordPress moeten worden geïntegreerd.

Als de performance van de site hierna nog een orde van grootte verder omhoog moet, kunnen er in plaats van WP Super Cache ook nog andere cachingmogelijkheden worden ingezet. Denk hierbij aan mod_proxy, mod_wodan en squid.

Trefwoorden: Blog, Iphone, Iphoneclub, Netwerk, Servers, Vps, Wordpress, Xen,

Contact Xls Hosting

Website - Geen ingevoerd

E-mail

Deze pagina afdrukken

Share