Drupal Performance - AuniTech/DevTips GitHub Wiki
Varnish är en s.k. proxycache som ställer sig innan Apache för att returnera cache sidor extremt snabbt (100x snabbare i Drupals situation). Denna modul integrerar varnish med Drupal för att cleara cachen på sidor. http://drupal.org/project/varnish
Alternative PHP Cache sparar alla php filers kod i ett delat minne för att inte behöva läsa dem när för varje sid rendering. Detta kan ha en enorm prestandaskillnad eftersom en Drupal sida lätt har 2000-3000 php filer. Denna modul integrerar ytterligare en apc cache backend, så att man kan lagra cache tabeller i PHP minne som delas mellan alla processer. http://drupal.org/project/apc
Views caching alternativ är något dåligt eftersom det enbart tillåter att cleara cache per tidsintervall. Följande modul gör det content aware så en views cache clearas när content uppdateras. http://drupal.org/project/views_content_cache
Drupals största performance problem är caching för inloggade användare, detta existerar inte i core och är svårt att förverkliga. Dessutom går det inte att cacha sidor med formulär, t.ex. kommentarsfält. Följande modul kan kombineras med en proxy cache för att hämta specificerade block med AJAX medan resten cachas enligt anonymous users. http://drupal.org/project/cache_control
Drupals cache clearas under cron körningar och är inte direkt konfigurerbar utan clearar allt på en gång. Följande modul spjälker varje cron task så de kan konfigureras skilt och köras olika tider, t.ex. behöver kanske inte xmlsitemap uppdateras varje 15min likt andra. Dessutom kan det sägas att cachen ska clearas kl 2am när så få som möjligt är online. http://drupal.org/project/elysia_cron
Sessions tabeller kan blir enorma i Drupal, detta är för att dess garbage collection körs var 23e dag. Följande modul gör detta till en cron task. http://drupal.org/project/session_expire
Block cache inställningar specificeras enbart i kod, följande modul lägger till en konfiguration i UIn för att ändra detta (per page/user/role eller global) http://drupal.org/project/blockcache_alter
Icke-testat
Möjliggör att cacha anonymous pages som statiska filer, kombinera detta med ngnix och det borde vara nära varnish performance. http://drupal.org/project/boost
Memcache är en in-memory databas som är extremt snabb jämfört med MySQL. Perfekt för cache tabeller. http://drupal.org/project/memcache
Drupals entities har inte stöd för caching (noder har inte, men pages har). Denna modul ger caching till Drupal entities. Fungerade inte på Snellman, men det var länge sen. Skaparen menar mycket allvar. http://drupal.org/project/entitycache
Små performance hacks av en annan allvarlig skapare. Node render caching (30-40% snabbare om memcache används). Förbättrad page cache, cleara ändast cachen för den node/NID som uppdateras/kommenteras, inte alla noders. http://drupal.org/project/performance_hacks
Vet egentligen inget om denna annat än att den lär vara mycket bra. http://drupal.org/project/expire
Vad man bör tänka på att man inte behöver caching i alla lager, då blir det ännu långsammare. T.ex. är entity cache (högst antagligen) onödigt om vi har varnish eftersom entities mycket sällan hämtas. Om modulen är enablead blir varje databas fråga en cache miss och cachen måste skapas, därmed fördröjs sidladdningen.