Authcache-module (Drupal): verschil tussen versies
(11 tussenliggende versies door dezelfde gebruiker niet weergegeven) | |||
Regel 47: | Regel 47: | ||
De maker van Authcache legt [https://drupal.org/node/768874#comment-2836230 hier] uit dat het lastig is om een site bij te werken, en tegelijkertijd gedeeltes van een site gecached te houden. En [https://drupal.org/node/768874#comment-2837168 hier] legt hij uit dat de ''Boost-module'' met de ''boost_crawler_run()-functie'' de site herbouwt mbv. een crawler. Er wordt dus bezoek gesimuleerd. | De maker van Authcache legt [https://drupal.org/node/768874#comment-2836230 hier] uit dat het lastig is om een site bij te werken, en tegelijkertijd gedeeltes van een site gecached te houden. En [https://drupal.org/node/768874#comment-2837168 hier] legt hij uit dat de ''Boost-module'' met de ''boost_crawler_run()-functie'' de site herbouwt mbv. een crawler. Er wordt dus bezoek gesimuleerd. | ||
− | == | + | == Casus: Keep it simple - Okt. 2015 == |
− | + | Om het zo simpel mogelijk te houden: | |
− | ''' | + | * Niet apart een ''bin'' of caching-systeem gebruiken, maar gewoon via de database, ook al zou dat suboptimaal zijn. Modules [https://www.drupal.org/project/cacherouter Cacherouter] en/of ''Memcache API'' zijn dus niet nodig |
+ | * Ik weet niet meer of de [http://pecl.php.net/package/memcache PHP Memcache-module] dan nog nodig is, maar die was al geïnstalleerd, en dat was een [[Memcache | fluitje van een cent]]. | ||
− | + | '''Acties ''' | |
− | + | * <code>drush en -y authcache</code> | |
+ | * Voeg de volgende regel toe aan ''settings.php'': <code>$conf['cache_inc'] = './sites/all/modules/authcache/authcache.inc';</code> | ||
+ | * Ga naar <code>Site configuration > Performance > Authcache</code>. Zie de afbeelding bij dit hoofdstuk voor de configuratie. Tabblad ''Pache Caching Settings'' had ik niet nodig | ||
+ | * In eerste instantie geen ''crawler'' gebruiken. Over een weekje of zo evalueren of dat alsnog nodig is. | ||
− | + | ''' Debug mode ''' | |
− | + | In het begin vond ik het handig om ''debug mode'' aan te hebben, om te zien of 't echt werkt. Dan verschijnt er een labeltje linksboven in het scherm. | |
− | ''' | + | ''' Klanten zien elkaars mandje? ''' |
− | + | In het verleden hadden we een storing waarbij klanten elkaars mandje voorgeschoteld kregen. Alsof er iets mis gaat met ''state''. Ik had het gevoel dat dat samenhing met caching-experimenten. Daarom wellicht handig om caching uit te zetten vanaf het moment dat mensen in de kassarij aansluiten. En dat is standaard al het geval. | |
− | |||
− | |||
− | + | ''' boost_crawler ''' | |
− | + | Ik heb er naar gekeken, maar ik vind het voor nu te veel werk. Bij de volgende release Varnish gebruiken. | |
− | + | {| | |
− | + | |[[file:20151006-1654.png|thumb|Uitgeklapt debug-venster. Oei: Een verbetering van maar liefst 537.000%. Ben ik effe blij dat ik geen additionele ''bins'' heb geïnstalleerd: Dat zou wel heel snel zijn geworden!]] | |
− | + | |[[file:20151006-1657.png|thumb|De beste configuratie als je de module voor het eerst gaat gebruiken]] | |
+ | |[[file:20151006-1656.png|thumb|Tweede Authcache-configuratiepagina: De cart-pagina's worden standaard niet gecached. Goed!]] | ||
+ | |} | ||
+ | |||
+ | == Casus: Halte es einfach (okt. 2015) == | ||
+ | |||
+ | Kunstje van hiervoor toepassen op [http://kohlebuersten-werkzeuge.de kohlebuersten-werkzeuge.de] | ||
== Zie ook == | == Zie ook == | ||
Regel 84: | Regel 92: | ||
* https://drupal.org/node/996418 - Installing Authcache 6.x | * https://drupal.org/node/996418 - Installing Authcache 6.x | ||
* https://drupal.org/node/996434 - Authcache 101: Intro to the Magical World of Caching | * https://drupal.org/node/996434 - Authcache 101: Intro to the Magical World of Caching | ||
+ | * http://kegel.com/drupal/fast.html |
Huidige versie van 30 okt 2015 om 16:15
Ik heb regelmatig het probleem dat Drupal 6-Ubercart sites nogal traag zijn vanwege de overhead vanwege dynamisch genereren van catalogus-pagina's. In juni 2013 heb ik de Authcache-module gebruikt voor http://www.carbonbrushes-online.com/.
Bins & cache-handlers
Drupal werkt met verschillende soorten bins of opslag voor verschillende soorten caches: Page-, block-, menu-caches. Misschien zijn er nog meer. Standaard gebruikt Drupal database-tabellen als bin. Dat zijn de tabellen waarvan de naam begint met cache.
Authcache houdt zich bezig met de page-cache. Standaard wordt daar een database-tabel voor gebruikt, tenzij je zo slim bent om de raad van authcache op te volgen om een cache handler te gebruiken, want database-tabellen zijn niet het meest effectief voor dit doel.
Voor Drupal 7 is Memcache API de aangewezen cache-handler. Voor Drupal 6 schijnt Cache Router ook een goede kandidaat te zijn, naast Memcache API[1].
Probleem met geleegde caches
Authcache werkt super maarrrr heeft een probleem: De cache wordt om de haverklap geleegd, onder andere bij de volgende gebeurtenissen, en dit beperkt het nut van de module nogal:
- Aanmaak van een nieuwe node
- Bewerken van een node
- Cron.
Cache invalidation (Dit is achtergrondinformatie)
Het mechanisme om caches te legen, heet cache invalidation. Drupal doet dat zo snel een node wordt toegevoegd of wordt bijgewerkt, wanneer cron wordt aangeroepen, etc. Dat gaat mbv. de functie cache_clear_all:
function cache_clear_all($cid = NULL, $bin = NULL, $wildcard = FALSE) { if (!isset($cid) && !isset($bin)) { // Clear the block cache first, so stale data will // not end up in the page cache. if (module_exists('block')) { cache_clear_all(NULL, 'cache_block'); } cache_clear_all(NULL, 'cache_page'); return; } return _cache_get_object($bin)->clear($cid, $wildcard); }
Cron-frequentie beperken
- De beste oplossing die ik tot op heden ken: Cron instellen op eens per week (dat is de maximale periode) en verder niets doen. Op de meeste webwinkels worden nodes maar zelfde aangemaakt of gewijzigd
- Cruciaal dat ongecashte pagina's wel geladen kunnen worden zonder time-out. En dat is soms niet best lastig.
De oplossing is waarschijnlijk het crawlen van de site. Zie betreffende hoofdstuk.
Boost Crawler
De maker van Authcache legt hier uit dat het lastig is om een site bij te werken, en tegelijkertijd gedeeltes van een site gecached te houden. En hier legt hij uit dat de Boost-module met de boost_crawler_run()-functie de site herbouwt mbv. een crawler. Er wordt dus bezoek gesimuleerd.
Casus: Keep it simple - Okt. 2015
Om het zo simpel mogelijk te houden:
- Niet apart een bin of caching-systeem gebruiken, maar gewoon via de database, ook al zou dat suboptimaal zijn. Modules Cacherouter en/of Memcache API zijn dus niet nodig
- Ik weet niet meer of de PHP Memcache-module dan nog nodig is, maar die was al geïnstalleerd, en dat was een fluitje van een cent.
Acties
drush en -y authcache
- Voeg de volgende regel toe aan settings.php:
$conf['cache_inc'] = './sites/all/modules/authcache/authcache.inc';
- Ga naar
Site configuration > Performance > Authcache
. Zie de afbeelding bij dit hoofdstuk voor de configuratie. Tabblad Pache Caching Settings had ik niet nodig - In eerste instantie geen crawler gebruiken. Over een weekje of zo evalueren of dat alsnog nodig is.
Debug mode
In het begin vond ik het handig om debug mode aan te hebben, om te zien of 't echt werkt. Dan verschijnt er een labeltje linksboven in het scherm.
Klanten zien elkaars mandje?
In het verleden hadden we een storing waarbij klanten elkaars mandje voorgeschoteld kregen. Alsof er iets mis gaat met state. Ik had het gevoel dat dat samenhing met caching-experimenten. Daarom wellicht handig om caching uit te zetten vanaf het moment dat mensen in de kassarij aansluiten. En dat is standaard al het geval.
boost_crawler
Ik heb er naar gekeken, maar ik vind het voor nu te veel werk. Bij de volgende release Varnish gebruiken.
Casus: Halte es einfach (okt. 2015)
Kunstje van hiervoor toepassen op kohlebuersten-werkzeuge.de
Zie ook
Bronnen
- https://drupal.org/project/Authcache - Project-pagina
- https://drupal.org/node/996418 - Installing Authcache 6.x
- https://drupal.org/node/996434 - Authcache 101: Intro to the Magical World of Caching
- http://kegel.com/drupal/fast.html