Performance Drupal
Drupal 9/10/11 e' notoriamente esoso di risorse, ma con la giusta configurazione di cache può servire migliaia di richieste/secondo con latenza minima. Il sistema di cache di Drupal e' a più livelli: render cache, page cache, dynamic page cache, BigPipe.
Internal Page Cache
La Internal Page Cache serve pagine HTML cached interamente agli utenti anonimi. Cache key basata su URL+lingua. Velocissima ma esclude qualsiasi contenuto user-specific. Va abilitata sempre per siti con traffico anonimo.
Dynamic Page Cache
La Dynamic Page Cache funziona anche per utenti loggati: cacha la pagina con placeholder per le parti dinamiche (es. user menu, cart counter). Render cache risolve i placeholder. Performance simile a page cache anche per utenti autenticati.
BigPipe
BigPipe (modulo core abilitato di default) implementa la tecnica Facebook di streaming HTML: la struttura della pagina arriva subito, le parti dinamiche (placeholder) sono streamate via chunked HTTP. L'utente percepisce un Time to First Byte ridotto e progressive rendering.
Cache tags
Drupal usa cache tags per invalidare la cache in modo chirurgico. Ogni entità ha il proprio tag (es. node:42): quando viene modificata, tutti gli oggetti cache che la contengono sono invalidati. Niente cache stale anche con cache aggressivo.
Cache contexts
I cache contexts variant la cache per dimensione: user.roles, url.path, languages, user.permissions. Una view con accesso role-based avra' un cache item distinto per ogni combinazione di ruoli.
Reverse proxy / CDN
Per scala maggiore, davanti a Drupal si mette Varnish, Nginx FastCGI cache o un CDN (Cloudflare, Fastly, Akamai). Le cache tag Drupal possono invalidare CDN via purge modulo.
OPcache PHP
OPcache deve essere sempre attivo con dimensione adeguata (256MB+): elimina il parsing PHP ad ogni richiesta. Drupal include OPcache check nelle status reports.
Database
MySQL 8 / MariaDB 10.6+ con InnoDB buffer pool dimensionato (50-70% RAM), query cache disabilitata (deprecated in MySQL 8), slow query log per identificare query problematiche.
Frontend
- CSS/JS aggregation: ON in produzione
- Gzip / Brotli compression
- HTTP/2 o HTTP/3 sul webserver
- Lazy loading immagini (native loading="lazy")
- Responsive images con srcset
Hai bisogno di aiuto?
Se vuoi un sito Drupal performante dal team di G Tech Group, scrivici tramite il modulo di contatto.