FOK! downtime nieuws

Peter Breuls
Welkom terug na een lange tijd plat te hebben gelegen. De afgelopen anderhalve dag heeft FOK! zware problemen gehad met overbelasting van de server. Ik heb vanmiddag op mijn weblog een post geplaatst met uitleg, die door een aantal creatieve Google gebruikers ook gevonden is. Voor de anderen hier een quote:

Het begon gistermiddag met onze webservers, die het zo druk begonnen te krijgen dat ze geen normale taken meer kunnen uitvoeren. Voor de minder in servers ingelezen personen: de webservers zorgen ervoor dat de pagina's die je op je scherm ziet opgebouwd en naar je browser verstuurd worden. Als ze meer te verwerken krijgen dan ze aan kunnen, krijg je een trage website.

Onze eerste aandacht bij een dergelijke situatie gaat altijd uit naar de zogenoemde accesslogs. Hierin noteert de server welke pagina's er worden opgevraagd, en wie dat doet. Daarin proberen we patronen te vinden die aanduiden of iemand bezig is veel pagina's tegelijk op te vragen, of dat een bepaalde pagina zo vaak wordt opgevraagd dat het de moeite waard is te controleren hoeveel moeite het de servers kost deze pagina te verwerken. Als we zulke patronen vinden is het meestal voldoende om het IP van de persoon te blokkeren of de kwaaddoende pagina al dan niet tijdelijk te verwijderen. Van dit soort overbelasting, waarbij feitelijk de normale werking van de servers te actief wordt gebruikt, is over het algemeen goed op te lossen, mits er geen kwade bedoelingen achter de overbelasting zitten.

De huidige overbelasting is echter van een andere aard en wat lastiger om op een eenvoudige manier uit te leggen. Ik doe echter wel een poging. Verzoeken aan een server gebeuren door hier contact mee te leggen en te vertellen wat je wilt. Je browser doet dat: de server van FOK!forum of een van de andere sites wordt benaderd, en verteld dat die en die pagina nodig is. De webserver gaat vervolgens aan de slag om die pagina op te bouwen en stuurt deze naar je browser.

Je kunt echter ook contact leggen met de server, en niet helemaal duidelijk zijn in wat je wil, wie je bent en waar je vandaan komt. Dat laatste is relevant omdat de server ook een antwoord moet teruggeven. Je zou ook contact kunnen leggen met de server en jezelf snel terugtrekken voordat er antwoord kan worden gegeven, of voordat je aan de server duidelijk hebt gemaakt dat je klaar bent met aangeven wat je van 'm wilt. In zulke gevallen wacht de server tot je meer informatie geeft. Aangezien jij je al hebt teruggetrokken staat de server dus op niets te wachten. Dit wachten op het afmaken van het verzoek houdt de server bezet, en als je zo'n onafgemaakt verzoek veelvuldig doet, raakt de server overbelast.

Dat is een omschrijving van het probleem. Hier zijn remedies voor, en die hebben we ook zoveel mogelijk toegepast. Aangezien enkele basic instellingen op de servers en de loadbalancer niet voldoende hielpen, hebben we onze heil gezocht in strengere firewall-instellingen. Om die te kunnen toepassen was echter een herinstallatie van een server nodig, omdat deze door bestaande, bewust beperkt gehouden, configuraties niet eenvoudig uit te breiden was met de benodigde software.

Bovenstaande vereiste nogal wat handelingen, vandaar dat een en ander nogal lang heeft geduurd. We draaien nu in een proefopzet, dat betekent dat we helaas nog geen volledige uptime kunnen garanderen. Ook is uit voorzorg het forum nog niet bereikbaar. Morgen overdag zullen we verder aandacht besteden aan de huidige opzet, en alles zoveel mogelijk optimaliseren. Intussen onze excuses voor het ongemak.