L’importanza della cache
Secondo me una frase che un buon programmatore dovrebbe sempre tenere a mente, soprattutto in questi momenti di crisi è : “sfrutta quello che hai già !”.
L’ottimizzazione delle risorse è il punto fondamentale! Ottimizzare quello che si ha già ! Come molti di voi sapranno WordPress è un mostro mangia memoria. Un’installazione pulita per ogni pagina vista richiede circa 30MB di ram, senza contare i numerosi cicli di clock che il processore deve spendere per elaborare il codice PHP e per le query SQL (minimo 50-60). Ci sono vari sistemi per ottimizzare, si può installare un web server più leggero come nginx, si può utilizzare APC per PHP o imporstare la cache per l’sql ma secondo me il sistema migliore, quello che incrementa veramente le prestazioni di un sito è un semplice sistema di caching dei contenuti.
Se ci pensate, un blog deve essere aggiornato solamente quando viene inserito un nuovo post, quando si inserisce un commento (sempre che non si ci affidi a un sistema esterno come facebook comments o altro) e basta, quindi perché generare sempre le stesse pagine per ogni utente? Basta che siano generate alla prima visita e poi andranno salvate su disco cosicché alle successive richieste non dovranno essere ricreate ma saranno subito pronte.
Se non siete convinti guardate i risultati di due tests che ho eseguito con siege prima e dopo l’attivazione di Lite Cache su WordPress.
Senza cache:
Transactions: 150 hits Availability: 100.00 % Elapsed time: 23.47 secs Data transferred: 0.33 MB Response time: 6.34 secs Transaction rate: 6.39 trans/sec Throughput: 0.01 MB/sec Concurrency: 40.51 Successful transactions: 150 Failed transactions: 0 Longest transaction: 8.51 Shortest transaction: 0.73
Con cache:
Transactions: 150 hits Availability: 100.00 % Elapsed time: 3.15 secs Data transferred: 0.34 MB Response time: 0.07 secs Transaction rate: 47.62 trans/sec Throughput: 0.11 MB/sec Concurrency: 3.48 Successful transactions: 150 Failed transactions: 0 Longest transaction: 0.18 Shortest transaction: 0.00
Come potete vedere i risultati sono cambiati notevolmente, il tempo di risposta è passato da 6.34 a 0.07 secondi, senza parlare della notevole diminuizione di carico del server.