Archive for juni, 2008

Case Study – Apple Keynote Piekbelasting iPhoneclub.nl

maandag, juni 30th, 2008

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.

Achtergrond – WordPress Optimalisatie iphoneclub.nl

maandag, juni 30th, 2008

Achtergrond – WordPress Optimalisatie iphoneclub.nl

Deze post geeft wat achtergrond informatie bij de volgende post over de performance van het populaire WordPress blog iPhoneclub.nl tijdens de Apple Keynote van 9 Juni 2008. Dit artikel beschrijft hoe de performance van WordPress op deze site is geoptimaliseerd voordat de Keynote plaatsvond.

De toegepaste optimalisaties vallen in 3 groepen uiteen:

* 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 die actief zijn op iPhoneclub en andere sites op de VPS.

In het volgende artikel kunt u lezen hoe het iPhoneclub verging tijdens de Keynote…

Nieuwe rubriek “VPS Case Studies”

maandag, juni 23rd, 2008

Onze klanten zijn hun VPSen op steeds meer verschillende manieren gaan toepassen en wij zijn vaak betrokken bij de implementatie van hun ideeën. Om deze ervaringen te kunnen delen zijn wij op dit blog een nieuwe categorie VPS Case Studies begonnen. Als wij een interessant project tegenkomen zullen wij die hier (met toestemming van de klant) bespreken.

U kunt denken aan de volgende onderwerpen:
* Hoe gaat een Xen VPS om met piekbelasting?
* Schaalbare Application Service Provider (ASP) diensten aanbieden
* Een flexibel hosting cluster van VPSen bouwen
* VPS mini-cluster: Develop – Test – Deploy
* Opzetten van een VPN netwerk met behulp van een VPS
* (Betaalbare) redundante server met behulp van standby VPS

Het eerste onderwerp zal de piekbelasting van de site www.iphoneclub.nl worden tijdens de Apple Keynote de 9e van deze maand.

XLS Introduceert IPv6

vrijdag, juni 20th, 2008

Het huidige 32 bits IP systeem, genaamd IPv4, is rond 1980 geïntroduceerd. Er was jammer genoeg weinig rekening gehouden met de enorme groei aan benodigde IP adressen en de mogelijke IP’s beginnen nu snel op te raken. Naar verwachting zullen er vanaf 2011 geen ranges meer aan providers uitgedeeld kunnen worden en zijn rond 2013 nauwelijks meer IPv4 adressen beschikbaar om uit te delen.

Voor die tijd zal de vervanger, IPv6, geintroduceerd moeten worden. Als u zich afvraagt waar IPv5 gebleven is….dit was een experimentieel streaming protocol dat nooit in gebruik is genomen.

IPv6 is een protocol dat 128 bits voor de addressering gebruikt, had IPv4 een theoretisch maximum van 4,294,967,296 (2^32) adressen, bij IPv6 ligt dat op ongeveer 34.000.000.000.000.000.000.000.000.000.000.000.000.000 (2^128) adressen. Dit zal voorlopig waarschijnlijk genoeg zijn. Bij IPv4 hebben we 4 maal 8 bits in gebruik, bij IPv6 is dat 8 maal 16 bits geworden.

IPv6 zal de komende jaren naast IPv4 worden geintroduceerd. Waarschijnlijk zullen beide systemen jaren naast elkaar gebruikt gaan worden, omdat er niet zomaar tussen beide protocollen te praten is. Hier zullen de verschillende providers op de wereld speciale servers voor neer moeten zetten. Het wachten is daarom op grootschalige implementatie van providers en bedrijven als Google, Microsoft en Yahoo. Onder andere Google is hier al mee bezig, haar website is via ipv6.google.com per IPv6 te bereiken.

Wij hebben vanaf vorige week IPv6 op experimentele basis in gebruik genomen om onszelf en onze klanten de kans te geven ervaring op te doen met het nieuwe systeem en om het gebruik van IPv6 te bevorderen.

IPv6 nummerplan:

Een IPv6 adres bestaat uit 8 blokken van 4 hexidecimale (16 tallig cijferstelsel) cijfers. Deze worden gescheiden door een dubbele punt (in tegenstelling tot IPv4 waar dat een punt is).

Wij kunnen bijvoorbeeld 2a02:0348:0032:cf89:0000:0000:0000:0001 als ip adres gebruiken voor onze mailserver. Dit kan worden afgekort tot 2a02:348:32:cf89::1. Een 0 die geen significate toevoeging geeft, mag weggelaten worden, blokken van nullen achter elkaar kunnen afgekort worden met twee dubbele punten

Het eerste blok (van links naar rechts) is door IANA (Internet Assigned Numbers Authority) aan RIPE (de Regional Internet Registry voor Europa en het Midden Oosten) gegeven om uit te delen aan providers.

Het tweede blok wordt door RIPE aan een LIR gegeven. Een LIR is een ISP die IP adressen aan klanten mag toewijzen. In dit geval zijn wij dat.

Het derde blok is het VLAN waar de mailserver of andere server/vps zich bevind. Deze wordt door ons bepaald. De waarde word dan van decimaal naar hexidecimaal omgezet. Vlan 50 word zo ’32′.

Het vierde blok is een ID dat wij aan de server geven op basis van het IPv4 adres. Hierbij nemen we de laatste 2 getallen uit het IPv4 adres en zetten dit ook weer om naar een hexidecimaal getal. Onze mailserver heeft IPv4 adres 194.60.207.137. 207 wordt dan ‘CF’, 137 wordt dan ’89′.

De laatste vier blokken zijn vrij voor de eindgebruiker om te gebruiken. In dit geval is alleen het cijfer 1 aan het einde van het laatste blok toegevoegd.

Dit IP moet vervolgens als een AAAA record aan de DNS worden toegevoegd. Een AAAA record is het IPv6 equivalent van een A record, de mapping van een domeinnaam naar een IP dus. Vervolgens zouden wij dan onze email per IPv6 kunnen gaan ontvangen, en eventueel doorsturen per IPv6 als de volgende server dit ook ondersteunt.

Bij ons zal de komende tijd IPv6 nog experimenteel gebruikt worden naast het IPv4 systeem. Wij geloven echter dat het goed is om nu al rekening te houden met de veranderingen die door IPv6 op netwerkgebied zullen moeten worden doorgevoerd. Aarzel niet om contact met ons op te nemen als u vragen heeft over de gevolgen die IPv6 voor u zal hebben, of hier gebruik van zou willen gaan maken.