Het kan gebeuren dat je website tegen zogeheten resource-limieten aanloopt. Wanneer je website zoveel resources verbruiken dat de limieten bereikt worden, krijg je bij het bezoeken van je website een melding te zien dat er sprake is van onbereikbaarheid vanwege hoge belasting op de server. De website wordt dan tijdelijk gelimiteerd en zal vanzelf bereikbaar worden wanneer je weer onder de limieten komt. In deze handleiding willen we graag aandacht besteden aan wat je in zulke situaties kan doen.
Wat zijn resources?
Allereerst, wat zijn resources precies? Bij resources kan je denken aan bijvoorbeeld CPU- of geheugengebruik. Net als een computerprogramma op een computer, verbruikt een website ook rekenkracht en geheugen van een server.
Hoeveel resources je tot je beschikking hebt, is afhankelijk van het pakket dat je bezit. Wanneer je tegen resource-limieten aanloopt, kan het zijn dat je je pakket ontgroeid bent. Je kan dan overwegen om op te schalen naar een pakket waar je meer resources tot je beschikking hebt. Je kan hier denken aan upgrades zoals van Slim naar Plus, of van Plus naar Pro.
Wat zijn mogelijke oorzaken?
Het kan ook zijn dat er sprake is van een probleem binnen de website waardoor je tegen deze limieten aanloopt. Er zijn verschillende oorzaken. Vaak ontstaat dit door een zware plugin, een script, een cronjob, een inefficiënte website, of een groot aantal gelijktijdige bezoekers. Hieronder zullen we deze mogelijke oorzaken bespreken.
Plugin of Script
Een veelvoorkomend probleem is dat een plugin of script in een 'loop' terecht is gekomen waardoor het maximale aantal resources bereikt wordt. Vooral plugins die afbeeldingen weergeven en/of bewerken, zoals gallery-plugins kunnen veel geheugen vragen.
Cronjob
Het is mogelijk dat een verkeerd ingestelde cronjob (binnen DirectAdmin of je CMS installatie) een groot deel van de resources opeist, met als gevolg dat deze ervoor zorgt dat er tegen een resource-limiet aangelopen wordt.
Groot aantal gelijktijdige bezoekers
Wanneer er plots erg veel bezoekers op je website komen, bijvoorbeeld doordat dat je website in het nieuws is geweest of plots enorm stijgt in populariteit, kan dit mede voor een limitering zorgen.
Binnen onze pakketten heb je, afhankelijk van welke pakket je bezit, een maximaal te gebruiken resources. Wanneer je website het pakket ontgroeid is, is het interessant om te kijken naar een pakket dat meer resources bevat. Hoe je een pakket kan upgraden, wordt hier nader toegelicht.
Inefficiënte website
Een andere veelvoorkomende oorzaak is dat de website niet goed ingericht is. Je kan hierbij denken aan een website die een groot aantal (onnodige) plugins gebruikt, een website die geen caching gebruikt, of een website die een erg grote database heeft.
Hoe kan ik het oplossen?
Onderzoek het probleem
Voordat je het probleem kan verhelpen, is het van belang een goede analyse te maken. Je kan je bijvoorbeeld het onderstaande afvragen:
-
Is er recentelijk iets aan de website gewijzigd? Is er bijvoorbeeld een update uitgevoerd of een nieuwe plugin geïnstalleerd?
-
Zijn de problemen eerder voorgekomen of vanaf een specifieke datum gestart?
-
Wordt de website extreem veel benaderd door één IP-adres?
-
Waren er (PHP)-fouten op de website voordat het probleem ontstond?
-
Is er wellicht een back-up aanwezig van de website voordat de problemen ontstonden?
Controleer het resourcegebruik
In DirectAdmin kun je veel informatie vinden om het probleem te verhelpen. Hiervoor maken we gebruik van de optie 'Resource usage'. Hier wordt exact bijgehouden hoeveel belasting er afkomstig is van het pakket.
1. Log in op DirectAdmin.
2. Ga in het menu naar 'Extra functies' → 'Resource Usage' en klik in het volgende scherm op 'Details'.
Vervolgens zie je in een overzicht met diverse grafieken. Hierin kun je zien wanneer en welke specifieke onderdelen van de resources het probleem veroorzaken. Onderaan op deze pagina vind je een compleet overzicht van de waardes welke op specifieke tijden ontstaan zijn. Tevens kan je verder terugkijken (standaard staat dit op 24 uur). De resource-geschiedenis gaat terug tot en met 30 dagen.
Bij een limitering is er een proces of zijn er processen binnen de website, die te veel resources in gebruiknemen. Houd er rekening mee wanneer je een limiet bereikt, dat processen vertraagd worden. Het vertragen van processen kan weer leiden tot het bereiken van de limiet op entry processes, omdat deze processen daardoor opstapelen.
Controleer de log-bestanden
Wanneer je het probleem aan het onderzoeken bent, loop dan altijd de log-bestanden na welke beschikbaar zijn in je pakket. Kijk hierbij vooral naar PHP-fouten welke je in de 'error log' vindt. Probeer deze fouten te herleiden naar de bron van het probleem. Bijvoorbeeld een fout in de PHP-code, script, of plugin welke het veroorzaakt en deze te verhelpen.
-
Hoe je logs in DirectAdmin kan opvragen, vind je hier.
Controleer de PHP-versie
Controleer in DirectAdmin bij de PHP-selector welke PHP-versie je draait. In geval je nog bijvoorbeeld PHP 5.3 draait, is het aan te raden te bekijken of je over kan schakelen naar een nieuwere PHP-versie.
-
Hoe je tussen PHP-versies kan schakelen en wat daar de voordelen van zijn, kun je hier terugvinden.
Resource problemen verhelpen
Door eerst een helder beeld van de oorzaak te krijgen, kan je het probleem doorgaans goed verhelpen. Op basis van de eerdere analyses heb je mogelijk de plugin, het script, of het IP-adres gevonden waar de overlast door ontstaat.
Plugin
Als blijkt dat de oorzaak een plugin is, dan kun je overwegen de plugin tijdelijk uit te schakelen of in zijn geheel te verwijderen en op zoek gaan naar een alternatief.
Als je de website niet kan bereiken doordat deze specifieke plugin problemen veroorzaakt, kan je de plugin het beste uitschakelen middels de 'Bestandsbeheer' van DirectAdmin.
Dit doe je door de map van de plugin op te zoeken en deze te hernoemen. Je kan bijvoorbeeld .old toevoegen aan de naam van de map waar de plugin in staat (e.g. /wp-content/plugins/test naar /wp-content/plugins/test.old).
Cronjob
Wanneer uit je onderzoek blijkt dat het probleem ontstaat uit een cronjob, is het verstandig deze uit te schakelen en te herzien. Wanneer je een cronjob gebruikt en deze overlast veroorzaakt, kan je de volgende stappen ondernemen:
-
Pas de regelmaat wanneer de cronjob uitgevoerd wordt aan.
-
Controleer het script op eventuele bugs.
-
Is de cronjob nog relevant? Zo niet, houd de cronjob dan gedeactiveerd.
Tevens is het bij WordPress mogelijk dat het probleem veroorzaakt wordt door een wp-cron welke niet correct functioneert. Je kan een wp-cron op de volgende manier uitschakelen:
-
Log in op DirectAdmin en ga onder 'Systeeminfo en bestanden' naar 'Bestandsbeheer'.
-
Open de /public_html/-map.
-
Zoek het wp-config.php-bestand en voeg de volgende code toe (of wijzig deze naar de onderstaande syntax) en sla dit op:
define('DISABLE_WP_CRON', true);
Wanneer je dit gedaan hebt, zullen de wp-crons niet meer worden uitgevoerd. Als het om een wp-cron gaat die je actief gebruikt, is het verstandiger om hier een reguliere cronjob voor aan te maken. Zie hiervoor ook de cronjob-handleiding.
Inefficiënte website
Mocht er geen sprake zijn foutmeldingen op de website, maar kamp je toch met een resource probleem is het mogelijk dat de website niet efficiënt ingericht, bijvoorbeeld doordat er teveel losse onderdelen ingeladen worden, of teveel plugins aanwezig zijn. Hierdoor kan zelf bij een minimaal aantal aanvragen er een limitatie ontstaan.
Er zijn een aantal stappen die je kunt ondernemen op je website efficienter te maken.
Overlast van één IP-adres
Wanneer je erachter komt dat de overlast veroorzaakt wordt door één enkel IP-adres wat de website extreem vaak aanvraagt, kan je deze blokkeren middels je .htaccess-bestand. Hiervoor kan je de onderstaande code toevoegen in je .htaccess-bestand (welke je kan vinden in de /public_html/-map van je website):
order allow,deny deny from 111.111.111.1 deny from 222.222.222.22 deny from 333.333.333.333 allow from all
Uiteraard dient het specifieke IP-adres wat je uit de logs gehaald hebt op de plek te staan van de 'dummy' IP-adressen in het voorbeeld hierboven. Deze lijst met te blokkeren IP-adressen kan zo lang gemaakt worden als jezelf wenst.
Support
Mochten er ondanks alle hierboven uitgelegde stappen er toch nog problemen zijn, stuur dan gerust een e-mail naar support@antagonist.nl. We kijken dan graag met je mee we of je verder op weg kunnen helpen hiermee.