Snellere Drupal site? Probeer deze 5 Tips

Door Thomas van EldijkBijgewerkt op 22 februari 2024 0 Reacties

Er zijn verschillende manieren om je Drupal website sneller te maken, zoals caching, Boost, Memcache of Pressflow. Welke van deze manieren zijn makkelijk toe te passen en in welke volgorde kun je het beste werken?

Performance optimalisatie is iets waar je nooit mee klaar bent. Het kan altijd sneller! Maar heb je hier geen dagen de tijd voor. Dan is het zaak om als eerste de dingen te doen die de meeste snelheid opleveren. Hieronder beschrijf ik 5 manieren die op volgorde van prijs/prestatie staan. Met de quickwins bovenaan.

Ben je tevreden met de snelheid van je website na stap 1? Dan kun je dus stoppen. Ben je nog niet tevreden dan ga je naar stap 2. Heb je alle 5 de stappen gevolgd en blijft je website nog langzaam? Dan moet je aan de slag met een database expert die je qeuries optimaliseert. Of moet je denken aan meerdere instanties van je website, load balancing of zwaardere hardware. Allemaal opties die veel geld en tijd kosten.

Stap 1 - Views optimaliseren

Eerst moet de oorzaak van de vertraging worden aangepakt. Namelijk het optimaliseren van je Views. Views in Drupal zijn vaak de bottleneck bij een langzame site. In feite maak je bij het creëren van een view steeds je eigen query aan. De View module is van origine een query builder. Het voordeel is dat je zonder een letter code te hoeven typen, content uit de database kan halen, kan filteren en tonen zoals jij dit wilt. Het nadeel is dat je vaak te makkelijk en te snel filters toepast en veel Views op één pagina toont.

Let op, doe dit in een test omgeving van je website. Nooit op een site die gebruikt wordt door gebruikers of beheerders!

Ga bij de Views naar “Tools” en zet “Enable views performance statistics via the Devel module” aan. Je kunt nu ( als je ook de Devel module hebt geïnstalleerd ) de laad en execute tijden van je views zien. Deze worden onderaan de pagina getoond. Als je door je webiste heen klikt zul je verschillende tijden zien. 10ms tot 30ms zijn normale waardes. Komt een view hier boven, bijvoorbeeld 300 of erger, dan weet je aan welke view je moet werken. Zitten er geen uitschieters bij? Dan kun je doorgaan met stap 2.

Om de view te optimaliseren moet je naar de view zelf gaan en nagaan wat de view moet tonen en wat hiervoor nodig is. Let hierbij vooral op de arguments en filters die toegepast worden. Worden er bijvoorbeeld meerdere gebruikt, dan zou je jezelf kunnen afvragen of je niet met één filter hetzelfde effect kunt bereiken? Omdat filters en arguments zorgen voor heftige database queries, loont het om de zaak zo simpel mogelijk te houden. Door met de view settings te spelen en te kijken naar de laad en execute tijden kun je vaak snel winst boeken. Lukt dit niet? Vraag dan een programmeur of database expert voor hulp.

Stap 2 - Cache

Drupal bezit vanuit zichzelf al een goed caching systeem. Je kunt dit aan zetten bij “site configuration” en “performance”. Je zet de cache op “normal”. “Aggressive” zorgt ervoor dat je informatie verliest zoals interne drupal statistieken over nodes. Gebruik deze setting alleen als je zeker weet dat je deze informatie niet nodig hebt in jouw website. Zet ook de cache op de blocks aan. Vervolgens ga je al je views af en zet je hier bij de settings ook de caching aan. Je kunt de cache tijden per view bepalen. Zo kun je views waarvan je weet dat deze vrij statisch zijn op langere cache tijden zetten dan views waarvan je weet dat deze juist actueel moeten zijn. Als het goed is merk je nu een groot verschil nadat je een aantal keer door je website hebt geklikt. De pagina’s worden niet meer opgebouwd maar geladen uit statische cache pagina’s. Is dit nog niet snel genoeg voor je? Dan moet je door met stap 3.

Stap 3 - Boost

Boost is een module die qua caching nog een stap verder gaat. Zoveel mogelijk data rondom de website wordt opgeslagen in statische pagina’s. Denk hierbij aan xml files, css, javascript, etc. Het geeft letterlijk een flinke boost aan je website en is relatief simpel te installeren. De module installeren, een cache directory aanmaken en de htaccess aanpassen. Hoe je dit precies moet doen wordt uitgelegd als je de module aanzet. Let op: Voor een goede werking van Boost moet je cron update goed werken en je url’s clean zijn.

Stap 4 - Memcache

Memcache is eveneens een verdere verbetering in de het caching systeem. Zo wordt de cache niet meer uit statische bestanden gelezen maar direct vanuit het geheugen. Een stuk sneller dus en vooral interessant als er veel bezoekers naar je website komen. Heb je niet veel bezoekers op je website, en ben je best tevreden met de winst die je tot nu toe hebt behaald? Dan loont het om nu te stoppen. Voor de Memcache optie heb je namelijk de nodige unix kennis nodig en kost de installatie ook meer tijd dan de voorgaande stappen. De Memcache installatie bestaat uit de volgende stappen:

Je kunt bij de statistieken mooi zien hoeveel van het gereserveerde geheugen voor je cache ook daadwerkelijk gebruikt wordt en of je meer moet reserveren. Tip: reserveer dus niet al te veel geheugen en schroef dit op als je merkt dat het nodig is. Je hebt snel de neiging om direct een paar gig te reserveren maar dit is in veel gevallen meer dan nodig is.

Stap 5 - Pressflow

Pressflow is een variant van Drupal waarvan de code op veel plekken versimpeld en sneller gemaakt is. Sommige snelheids freaks vinden dit de eerste stap die je moet doen. Ik ben van mening dat je niet te snel moet overgaan naar Pressflow. Het nadeel zit in de compatibaliteit met contrib modules. Daarnaast kan het soms onverwacht reageren. Veel van de problemen die kunnen ontstaan zijn wel te verhelpen zijn maar zorgen toch voor extra werk en onzekerheid. Dat is met name onhandig als je midden in een project zit en met meerdere developers werkt.

De winst is er zeker wel. Dus Pressflow is het overwegen zeker waard. Ik zou het echter alleen doen als je ontevreden bent over de progressie die je geboekt hebt met de voorgaande stappen en op een moment dat een project aan niet te veel veranderingen onderhevig is.

Een bestaande Drupal site kun je simpel weg omzetten naar pressflow door de core files over je Drupal installatie te kopiëren. Net als een Drupal upgrade eigenlijk. Let uiteraard wel goed op dat alle files die je aangepast of toegevoegd hebt, niet overschreven worden en maak altijd van te voren een goed backup!

Conclusie

Dit waren naar mijn mening de 5 meest efficiënte manieren om Drupal sneller te krijgen. Uiteraard zijn er nog meer dingen die je kunt doen. Denk bijvoorbeeld aan je css en image files in de cloud plaatsen. Maar dit geldt voor alle websites, niet specifiek voor Drupal. Heb ik een Drupal performance boost vergeten? Of heb je een vraag over een van deze manieren, dan lees ik het graag in het commentaar gedeelte hieronder.

Meer inzichten over Drupal