Dag 22: Drupal perfomance

Drupal is een krachtig CMS, je kunt er, zoals je hebt kunnen lezen in de voorgaande dagen van alles mee maken. Probleem is echter dat juist het tonen van al die Drupal nodes het nodige aan rekenkracht kost. Een Drupal website wordt dan ook, naar mate er meer content in zit, langzamer. Gelukkig zijn er veel manieren om een Drupal website een stuk sneller te maken.

Voor alle onderstaande optimalisaties geldt dat je deze het beste kunt doorvoeren, nadat je klaar bent met het opzetten van je content types en views. De onderstaande uitleg over cache zal duidelijk maken waarom.

Cache

Als een CMS zijn content moet laten zien moet het zoeken in de database naar de juiste content. Deze moet op volgorde worden gezet, er wordt gekeken naar de rechten, de juiste velden, de juiste comments, gerelateerde items, etc. Dit kost een hoop rekenkracht van de webserver. Dit terwijl veel van de bezoekers dezelfde content bekijken. De oplossing is simpel: Sla de resultaten op in simpele html bestanden. Op deze manier hoeft de websevrer alleen bij de eerste bezoeker alle berekeningen te maken en kan deze bij alle bezoekers die hierna komen de simpele html voorschotelen.

De simpelste manier om je website een stuk sneller te maken is via de standaard Drupal cache. Je kunt deze aanzetten bij Instellingen > Prestaties. ( Configuration > Perfomance ) Hier zet je de cache aan op zowel de pagina's voor anonieme gebruikers als op de blokken.

De cache tijd stel je in afhankelijk van wat je verwacht aan veranderingen op de website. Het gemiddelde van 6 uur dat Drupal zelf voorstelt is prima. Is je website vrij statisch, dan kun je dit best verhogen naar 12 uur. Verandert er elke dag wel wat op je website? Dan is 3 uur een beter.

CSS en JavaScript compressie

Naast Cache kun je op de Instellingen > Prestaties. ( Configuration > Perfomance  ) pagina ook CSS-bestanden en Javascript-bestanden laten samenvoegen en comprimeren. Dit zorgt er voor dat er minder data tussen de bezoeker en webserver verstuurd hoeft te worden.

Views cachen

Als het goed is je website nu al een stuk sneller maar we zijn er nog niet. De verschillende views die dynamische content tonen worden nog niet gecached. Lijstjes als: “Laatste blogs”, “Nieuwste Cases” of “Gerelateerde veel gestelde vragen” moeten allemaal worden opgebouwd. Zeker als de query die je view maakt complex wordt kan het een tijd duren voordat deze is opgebouwd. Daaromis het verstandig om je views te cachen. Je doet dit per view via Structuur > Views  ( Structure > Views ) en dan klik je op de bewerken knop rechts van je View. Eenmaal in je View overzicht open je rechts van de pagina de opties Advanced en zie je onderin de lijst Caching staan. Door hier op te klikken en de tijd in te stellen wordt deze View voortaan gecached. Doordat je de tijd per View kan bepalen kun je ook instellen dat een View voor nodes die niet vaak wijzigen een stuk hoger is dan een View voor nodes die juist wel vaak ge-update worden.

Meten

Wil je een objectief oordeel over de snelheid van je website dan zijn dit twee handige tools:

plaatje van blamestella.com websites   plaatje van Google Page Speed Insights

 

 

 

 

MemCached

Caching kan nog sneller als de gecachde pagina’s niet op de harddisk worden opgeslagen maar in het werkgeheugen van de webserver . Op die manier wordt de cache nog sneller geladen en kan de webserver meer bezoekers aan. Memcached is een zelfstandige applicatie die je op de webserver installeert en configureert.  Via de Drupal module Memcache koppel je vervolgens je website aan de Memcached applicatie. We gaan binnen deze website niet verder in op de details, hiervoor zijn het beste andere bronnen te gebruiken. Je hebt voor deze optimalisatie goede kennis van Unix nodig en bedenk dat de performance winst met name voelbaar is bij grote aantallen bezoekers.

http://memcached.org/
http://drupal.org/project/memcache/

http://blog.servint.net/2012/03/16/the-tech-bench-how-to-install-php-memcache/

Nginx

Nginx kan als vervangende webserver dienen voor de populaire Apache webserver. Nginx is zo gebouwd dat het 10.000 request tegelijk aankan, in combinatie met functies als "load balancing" is het de ideale tool om ervoor te zorgen dat je website veel traffic aankan.

Heb je geen tijd of zin in om uit te zoeken hoe Nginx werkt? Dan zijn er tegenwoordig partijen die een kant en klare oplossing bieden. Neem bijvoorbeeld Pantheon, dit is een platform gemaakt door Drupal developers, voor Drupal developers. Pantheon heeft zijn omgeving helemaal geoptimaliseerd voor razendsnelle prestaties en biedt daarnaast handige optie om je Drupal website tussen een development, test of live locatie te verplaatsen.

http://nginx.org/
http://wiki.nginx.org/Install
http://www.getpantheon.com

 

 

 

 

Laatst gewijzigd op: