Cookies op Tweakers

Tweakers is onderdeel van DPG Media en maakt gebruik van cookies, JavaScript en vergelijkbare technologie om je onder andere een optimale gebruikerservaring te bieden. Ook kan Tweakers hierdoor het gedrag van bezoekers vastleggen en analyseren. Door gebruik te maken van deze website, of door op 'Cookies accepteren' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt? Bekijk dan ons cookiebeleid.

Meer informatie

Door Arjen van der Meijden

Lead Developer

Tweakers' serverpark

De situatie in 2015

Webservers

Onze drie loadbalancers verdelen het verkeer over de diverse webservers, althans er zijn er op ieder moment steeds maar twee actief, omdat we in onze hoofdlocatie twee loadbalancers in active-passive-modus hebben staan. De loadbalancers zorgen er bovendien voor dat het verkeer via gslb over de twee locaties wordt verdeeld. De standaardverdeling daarbij is 95/5 procent, maar dat wordt automatisch op honderd procent ingesteld als een van de locaties niet meer werkt.

Een groot verschil ten op zichte van de webservers van 2013 is dat we nu twee typen webservers gebruiken. Het eerste type is verantwoordelijk voor de 'statische content', zoals onze javascript, css en (dynamisch gegenereerde) afbeeldingen. Het tweede type is verantwoordelijk voor de 'application'. Daarmee doet dit het leeuwendeel van de php-verwerking en genereert dit type dus de uiteindelijke html.

Hoewel deze opsplitsing verschillende voordelen biedt, vormde één specifiek soort downtime de aanleiding hiertoe. Af en toe was onze nfs-server even niet bereikbaar, waarna in rap tempo alle 'workers' van Apache bezet raakten omdat ze wachtten op een reactie van de nfs-server. Zelfs als de daadwerkelijke onbereikbaarheid van de nfs-server maar enkele seconden duurde, kon dit grote gevolgen hebben voor Apache. Vaak moesten we Apache herstarten en de disk remounten om het probleem op te lossen. Soms moesten we zelfs de server opnieuw starten.

Dit probleem verdwijnt natuurlijk niet door webservers in twee typen op te splitsen, maar daarmee bereiken we wel dat alléén de plaatjes en andere statische content op een dergelijk moment onbereikbaar zijn. Overigens is intussen ook de nfs-configuratie aangepast, waardoor het in de praktijk niet meer voorkomt.

2015 Static web

Statische-contentserver

De splitsing gaf ook ruimte om zaken specifiek voor hun doel te optimalizeren. Zo hebben de statische-contentservers een grotere in-memory Varnish-cache (15 versus 5GB) en zijn de 'application'-servers juist voorzien van onze Java Engine, die we ook gelijk wat meer geheugen hebben gegeven. Verder gaan we nog bekijken of het eerste type server een andere http-daemon moet krijgen. Apache werkt erg goed en biedt krachtige functionaliteit, maar voor statische content zijn er efficiëntere webservers beschikbaar, zoals nginx en lighttpd.

2x 'application'-server

Voor meer informatie over al die software kun je onze vorige versie doorlezen. Aan de inrichting is verder weinig veranderd.

Onderdeel 2013 2015 Application 2015 Statische content
Hoofdlocatie 3x IBM x3550 M3 3x IBM x3550 M5

2x IBM x3250 M5

Uitwijklocatie 3x IBM x3550 M3 1x IBM x3550 M5

IBM x3250 M5 + x3250 M4

Cpu 2x Xeon X5675 (3,06GHz 6C) 2x Xeon E5-2640 v3 (2,6GHz 8C) M5: Xeon E3-1271 v3 (3,6GHz 4C)
M4: Core i3-3220 (3,3GHz 4C)
Geheugen 6 x 4GB (24GB) 8 x 8GB (64GB) 4 x 8GB (32GB)
Disk 146GB 10K SAS 500GB SATA M5: 250GB SATA
M4: 64GB SSD
Apache *.tweakers.net
*.tweakimg.net
*.tweakers.net (behalve static.tweakers.net) static.tweakers.net
*.tweakimg.net
Varnish 5GB 5GB 15GB
Tomcat 8GB 10GB n.v.t.
ActiveMQ 2GB 2GB 2GB

Ten opzichte van 2013 hebben de nieuwe application-webservers veel meer ram gekregen. De 24GB was wat aan de krappe kant voor de combinatie van Varnish, Apache, Tomcat en ActiveMQ. Met die 64GB hebben ze voorlopig nog behoorlijk wat geheugen vrij. De statische-contentservers hebben met 32GB ook meer geheugen gekregen dan de oude servers, maar doordat de Varnish daarvan meer geheugen toegekend heeft gekregen, is die extra ruimte onmiddellijk alweer in gebruik genomen.

Hoewel er per application-webserver nu vier cpu-cores extra zijn, lijken ze aan de hand van de specificaties per cpu-core iets langzamer. In werkelijkheid valt dat reuze mee, omdat de E5-2640 v3 drie generaties nieuwer is dan de X5675 en daardoor meer werk per clock tick kan doen. Zodra turboboost actief is, loopt het verschil in kloksnelheid ook nog eens terug, de E5-2640 haalt maximaal 3,4GHz op een of twee cores en de X5675 3,46GHz.

De statische-contentservers zijn overigens nog wel een stuk sneller met singlecore-prestaties. De Xeon E3-1271 v3's hebben tenslotte min of meer dezelfde cpu-architectuur, maar hebben een minimale kloksnelheid van 3,4GHz en kunnen dat met turboboost verhogen tot maximaal 4GHz.

De redundantie van de servers is met de genoemde splitsing ook anders ingericht en dat was meteen onze eerste serieuze afwijking van het originele plan om de locaties te spiegelen. Op de hoofdlocatie hebben we volledige redundantie voor de application-webservers, omdat zij vijfennegentig procent van het verkeer moeten verwerken. Als we ook voor de andere vijf procent drie van die dikke servers hadden moeten plaatsen, hadden we flink moeten inleveren op de capaciteit per server om binnen ons budget te blijven. Servers plaatsen die vervolgens weinig werk krijgen, vonden we een te groot offer.

Volgens onze schattingen kan één dergelijke application-webserver op een normale dag al het verkeer aan, daarom hebben we er in de uitwijklocatie ook maar een geplaatst. Uiteraard zal die ene overgebleven server het bij uitval van de hoofdlocatie wel gelijk behoorlijk druk krijgen. Om dat effect te minimaliseren zijn de loadbalancers geconfigureerd om bij hoge load ook de statische-contentservers in te zetten voor het tweakers.net-domein. Uiteindelijk zijn daardoor in de hoofdlocatie nu maximaal vijf webservers beschikbaar en in de uitwijklocatie, net als voorheen, maximaal drie.

Wat vind je van dit artikel?

Geef je mening in het Geachte Redactie-forum.

Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Microsoft Xbox Series X LG CX Google Pixel 5a 5G Sony XH90 / XH92 Samsung Galaxy S21 5G Sony PlayStation 5 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True