Sito formativo che crashava 8.668 volte in 3 mesi: trovate 5 cause distinte, zero downtime da allora
La sfida
Sito formativo con crash ricorrenti: quasi 9.000 riavvii del server in tre mesi, 5 ore e mezza di interruzione totale, pagine irraggiungibili senza preavviso per gli studenti collegati. Il team aveva provato a tappare il problema con patch casuali, ma il problema tornava sempre. Nessuno riusciva a riprodurlo in modo costante — appariva e scompariva, colpiva alcuni utenti e non altri.
La soluzione
Analisi sistematica strato per strato, con piano di ripristino documentato per ogni modifica: nessun cambiamento permanente prima di verificarne l'impatto. Trovati e risolti cinque problemi distinti che si amplificavano a vicenda: un componente consumava tutta la memoria disponibile su ogni pagina aperta da un utente collegato; un plugin di sicurezza disattivato continuava a girare in background bloccando altre funzionalità; il sistema di cache era configurato in modo da non funzionare quasi mai; altri due problemi nascosti nella configurazione del server e nel database. Dopo il fix: pagine che caricano in 0,41 secondi, zero crash.
Risultati
Consumo memoria per pagina: da crash a 30MB
8.668 crash → 0 da allora
Pagine -24% più veloci come effetto collaterale
5 cause distinte identificate e risolte, non mascherate
Stack tecnico
- PHP-FPM 8.3 + OPcache JIT
- MariaDB (buffer pool, slow query log)
- Redis (LRU eviction policy)
- Nginx (proxy cache, gzip)
- WordPress mu-plugin custom
- Plesk + Linux