Drupal performance tweaking - Drupal Cache

Drupal is een fantastisch CMS-systeem, maar als je naarstig aan de slag bent geweest met modules installeren en pagina's aanmaken, kan het best zijn dat je site niet meer zo snel presteert als je wel zou willen...

In een reeks van blogposts ga ik dieper in op uitgebreid aantal mogelijkheden om de performantie van je site te verhogen. Volgende maatregelen passeren de revue:

  • Drupal cache
  • Apache optimaliseren
  • Advance PHP Cache (APC)
  • Memcached
  • Varnish
  • CDN met FileConveyor

We zullen voor de meeste maatregelen ook meegeven welk effect dit had op een voorbeeld-site, gemeten via pingdom, Apache Benchmark of de PageSpeed plugin voor Google Chrome.

Sommige van deze tweaks zal je zelf niet kunnen uitvoeren op een shared hosting account, maar kunnen wel van pas komen als je een VPS hebt met een php-site. En wees gerust, drupal shared hosting sites bij Robusta maken volop gebruik van een performante Apache met APC én Memcached, en de mogelijkheid om Varnish als cache te gebruiken. Het gebruik van een CDN voor je statische content is ook inbegrepen in je maandelijkse prijs, dus aarzel niet om dit aan te vragen!

Drupal Cache

De eenvoudigste manier om de performantie van drupal te verbeteren, is door de caching in te stellen.

Standaard staat de caching van drupal uitgeschakeld, om het aanmaken van je website te vergemakkelijken (wanneer je pagina's gecached zijn, zie je niet direct het resultaat van je wijzigingen). Maar eens je de grote lijnen van je website heb uitgezet, kan je gerust de caching aanzetten om je site sneller te laten laden.

Je vindt de cache-instellingen in je drupalsite -> Instellingen -> Ontwikkeling -> Prestaties (of ga direct naar het pad www.mijnsite.be/admin/config/development/performance)

Wat kan je allemaal configureren?

Cache Legen

Met de eerste knop kan je de cache legen. Dit is zeer nuttig als je wijzigingen hebt aangebracht aan je site, en je ziet niet direct het resultaat. Door de cache te legen, zullen je wijzigingen wel zichtbaar worden.

Cache settings

Caching: Hier kan je instellen of drupal pagina's en/of blokken gaat cachen. Voor de meeste sites is het best om beide te cachen. In de meeste gevallen zal je weinig dynamische blokken of pagina's hebben, en voor veel items kan je de dynamische items ook apart instellen qua caching.

Cache levensduur: Hier kan je twee types levensduur instellen. De eerste geeft aan hoelang drupal intern moet wachten om te checken of er een nieuwe versie van de pagina is. Deze kan je best zo hoog mogelijk instellen, afhankelijk van de kenmerken van je site (voor een site met frequent wijzigende data, zoals live voetbaluitslagen, zet je de setting lager dan voor een statische website, waar eens in de maand misschien een nieuwe pagina aangemaakt wordt).

De tweede setting geeft aan hoe lang een externe server een pagina in de cache mag houden. Ook deze setting zet je best zo hoog mogelijk, omdat in dat geval deze externe server de pagina kan aanbieden aan de browser, wat de load op jouw eigen server beperkt. Ook hier geldt dat de setting afhankelijk is van de volatiliteit van je inhoud. Je moet er rekening mee houden, dat als je beide settings op het maximum van 1 dag zet, het tot 48 uur kan duren eer een bezoeker de nieuwe data op jouw site kan zien (de eigen cache van 24 uur, die dan ook nog eens extern zou gecached kunnen zijn voor 24 uur).

Bandbreedte optimalisatie

De laatste twee settings zijn geen cache settings, maar hebben ook een impact op de performantie van je site. Een standaard drupal site heeft meer dan 20 javascript en css bestanden die moeten geladen worden bij iedere pagina. Dat betekent dat de browser minstens 20 requests moet doen om je pagina volledig te laden. Standaard javascript en css bestanden bevatten ook veel witruimte, om het de ontwikkelaar eenvoudiger te maken. Wanneer je deze twee settings activeert, zal drupal zoveel mogelijk javascript en css bestanden samenvoegen, zodat de browser minder requests moet maken. Daarbovenop zal drupal ook de witruimte weglaten uit deze bestanden, waardoor het aantal bytes dat over de lijn wordt gestuurd aanzienlijk kan verminderen.

Moest je later toch nog iets willen aanpassen aan een van de javascript of css bestanden, kan je dit nog steeds doen - de bestanden op de server veranderen niet door deze settings.

 

Reactie toevoegen