Case Study - Apple Keynote Piekbelasting iPhoneclub.nl

VPS case studies

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 steeds meer als autoriteit gaan zien. De Apple Keynote van 9 juni 2008 zou wat drukte betreft alle records gaan breken. 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. In het achtergrond artikel hiervoor staan enkele WordPress optimalisaties die voor de Keynote (al dan niet in een eerder stadium) al op iPhoneclub zijn toegepast.

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 vervolgens 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.