• About Me
  • Skills
  • Education
  • Employment
  • Blog
  • Contact
  • Open Source
    • WordPress
      • 3B Meteo Plugin
      • Facebook Like and Send
      • Google Monthly XML Sitemap
      • Google News Sitemap
      • Google Plus Comments
      • Google Plus One Button
      • I don’t endorse Google
      • I don’t endorse Wikipedia
      • I don’t endorse WIkipedia
      • Ottimizzare WordPress per renderlo più veloce
      • Rich Category Editor
      • Save To Google Drive
      • Sociable Italia
      • Third Party Cookie Eraser
      • Twitter Follow Button
      • WP instantempo
      • WP Super Secure and Fast htaccess
    • Plone SEO – collective.perseo
  • Creations
    • Web Marketing
    • SEO
    • WPO
    • SEO Stupidity
    • Webmaster Superhero
    • Il Vero SEO

Migliorare WordPress: XCache e W3 Total Cache (e salva il tuo server)

23 Aprile 2010 / By Andrea Pernici
  • Home
  • Migliorare WordPress: XCache e W3 Total Cache (e salva il tuo server)

Dopo aver scritto oramai tempo fa l’articolo su come Ottimizzare WordPress e dopo aver letto un post che mi ha molto colpito e mi ha spinto a fare dei cambiamenti in alcuni miei siti realtivamente alla scelta del plugin di caching mi sono ritrovato con dei seri problemi di picchi di carico sui miei server e dunque ho letto come conseguenza interessanti post relativi a:

  • casi reali di ottimizzazione (di Sergio Gandrus) usando alcuni dei plugin consigliati nel mio post,
  • rapide mosse per ottimizzare i cms (di Michele Caivano),
  • una leggermente datata ma ottima guida all’ottimizzazione di WordPress,

e altri dedicati ad un grave problema che affligge wordpress a partire dalla versione 2.8 come:

  • WordPress is a Memory Hog,
  • How to cut down wordpress memory usage,
  • PHP on Fire: Five Opcode Caches compared,
  • WordPress and Server RAM: Your (many) Plugin Uses (much) Memory
  • Behold WordPress, Destroyer of CPUs (con risposta di Matt Mullenweg)

Dopo tutta questa lettura e dopo aver provata a passare da Wp Super Cache (http://wordpress.org/extend/plugins/wp-super-cache/) a Hyper Cache (http://wordpress.org/extend/plugins/hyper-cache/) + DB Cache Reloaded (http://wordpress.org/extend/plugins/db-cache-reloaded/) il risultato è stato davvero tremendo per il mio server.

Il load average è passato da picchi di 2.5 a picchi di 4.5 con un costante aumento medio del load.

A questo punto tramite qualche controllo ho identificato i domini più carichi e mi sono messo a testarli.
Se da un lato i due plugin hanno fatto guadagnare prezioni millisecondi nel caricamendo delle pagine hanno causato un globale slow down del server e dunque un rallentamento complessivo di tutti i domini.

Non rassegnato ho evitato di tornare a WP Super Cache e ho testato W3 Total Cache (http://wordpress.org/extend/plugins/w3-total-cache/) configurandolo in modo ottimale in ogni sua parte compreso caching del db e minify e testandolo sia con sistema di caching su disco che con XCache.

Il risultato utilizzando il disco è stato molto simile al risultato che ottenevo con Hyper Cache mentre invece risultato ottenuto con Xcache è stato davvero sorprendente e a prova di bomba. Il load risulta regolare e la velocità di caricamento è davvero impressionante e visibile a occhio umano senza usare troppi strumenti.

Nel mio caso ho impostato anche la configurazione di mysql consignata da Matt e ho impostato Xcache nel seguente modo:

{code php}

xcache.size  =                32M

xcache.count =                 1

xcache.slots =                8K

xcache.ttl   =                 3600

xcache.gc_interval =           300

xcache.var_size  =            1M

xcache.var_count =             1

xcache.var_slots =            8K

xcache.var_ttl   =             3600

xcache.var_maxttl   =          0

xcache.var_gc_interval =     300

xcache.size  =                32M

xcache.count =                 1

xcache.slots =                8K

xcache.ttl   =                 3600

xcache.gc_interval =           300

xcache.var_size  =            1M

xcache.var_count =             1

xcache.var_slots =            8K

xcache.var_ttl   =             360

xcache.var_maxttl   =          0

xcache.var_gc_interval =     300
{/code}
ma ognuno deve impostarlo in base alle proprie caratteristiche del server e testare la soluzione migliore in termini di carico/velocità.

Conclusioni

Per concludere va detto che di base WordPress consuma davvero parecchie risorse e che la scelta del plugin di caching va valutata singolarmente per ogni caso in quanto ci potrebbero essere incompatibilità tra plugin o con impostazioni della macchine su cui risiede il sito.

Per quanto riguarda W3 Total Cache devo dire che è davvero un ottimo plugin e se riuscisse ad inglobare la funzione di autoptimize diventerebbe davvero superlativo.

Per quanto riguarda XCache credo che sia un’ottimo strumento anche se esistono alternative come APC (che pare verrà incluso in PHP6) ed eAccelerator (che ho provato con un forum e funziona molto bene).

Che dire…è tutta questione di testing 🙂

Tags
Load Average, Wordpress Memory, Xcache

Comments are closed.

Blog Comments
Tiziano Fogliata 28 Aprile 2010

Ottimo post che condivido pienamente. Anch’io ho trovato che l’accoppiata W3 Total Cache e XCache (o eAccelerator) funziona veramente bene.

Non mi sono mai trovato male nemmeno con WP Super Cache, mentre DB Cache Reloaded e soprattutto Hyper Cache mi hanno causato dei problemi. Quest’ultimo in alcuni casi mi ha schiantato il server per eccessivo consumo di CPU.

Andrea Pernici 28 Aprile 2010

Ciao Tiziano e grazie mille…un onore averti tra i commenti 🙂

Grazie inoltre di aver aggiunto la tua esperienza a favore di questa tesi.
In questo modo andiamo ad avvalorare il fatto che è necessario provare e riprovare perché non esiste in assoluto una scelta assolutamente perfetta, ma che dipende molto anche dal tipo di macchina e di sito che si ha…e non ultimo andiamo anche a sfatare dei falsi miti che rischiano di crearsi in giro per la rete 😉

Credo che dopo il post linkato si siano schiantati molti server in giro per il mondo 🙂

Tiziano Fogliata 29 Aprile 2010

Poi molto dipende dal volume e dal tipo di traffico del sito.

E’ molto diverso, ad esempio, avere un blog
con tutto il traffico focalizzato su due o tre pagine
piuttosto che averne uno nel quale il traffico è distribuito
in modo più equilibrato.

Un altro modo importante di migliorare le performance, secondo me,
è quello di usare i tag condizionali per evitare di caricare
tutti gli elementi su tutte le pagine del blog.

Andrea Pernici 29 Aprile 2010

Decisamente come dici tu.

I conditional tag sono più laboriosi, ma importantissimi.

Angelo Milan 29 Aprile 2010

Ciao Andrea, grazie per questo articolo.
Io ho provato vari plugin, e ho dovuto escludere:
– DB cache reloaded per incompatibilità con simplepress
– WP Supercache per incompatibilità con member access

Ora, credevo di aver trovato una buona alternativa in hyper cache (anche vedendo i risultati di quell’ articolo di tutorial9.net
Tra l’ altro, lì dice di disabilitare la compressione, e allora mi chiedo perchè sia abilitata di default.
Vabbè.
Tu alla fine sei arrivato ad usare W3 Cache con Xcache…

Io non ho mai fatto tutti questi calcoli nella velocità di wordpress, ma ora che sto registrando dei picchi di traffico sul mio sitarello gli errori di database e il superamento della “Policy netsons” si sprecano.

E non pensavo (ora mi è venuto qualche dubbio) che si trattasse di hyper cache.
Oggi ho richiesto l’ upgrade a semidedicato pro (lo so, sono piccoletto) su Netsons.

Ci tengo a trovare una soluzione pressochè definitiva, perchè sennò perdo utenti interessati.

Adesso installo W3 cache, Xcache non so nemmeno se serve nel mio caso (e soprattuto nel configurarlo dovrei metterci un minimo d’ impegno)

Non utilizzando uno strumento di analisi della velocità, andrò per tentativi.
Ciao!

Andrea Pernici 29 Aprile 2010

A fartelo installare non ci dovrebbe volere molto quindi puoi optare o per Xcache o per APC.
APC pare che dalla 6 diventerà di default in php6 quindi a te la scelta.

Avendo APC o XCache potrai poi decidere se scegliere l’opcode oppure il disco e potrai testare.

Allo stato attuale credo che W3 Total Cache sia l’unico plugin che permette di scegliere tra vari opcodde e caching su disco quindi…;)

Davide 15 Maggio 2010

Ciao,
grazie per la tua esperienza.
Io ho da poco installato sul mio blog wp super cache. Però dopo aver letto il tuo articolo, forse sono più tentato a provare ad installare
W3 Total Cache. Non credo ci siano problemi se elimina Super Cache e installo W3 Total Cache. Anche perché a dir la verità io tutta questa velocità con super cache non l’ho per niente notata. Cosa che non capisco è poi XCache. A cosa serve? E’ necessario?
Inoltre sarebbe interessante sapere come bisogna configurare W3 Total Cache.
Grazie mille

Davide 16 Maggio 2010

In ogni caso ho appena installato W3 Total Cache, e devo dire
che funziona davvero bene rispetto a wp super cache. Si nota
di più la differenza di caricamento.
Ad ogni modo però ho alcuni problemini:
il primo messaggio che mi viene segnalato è Unfortunately, PHP5 is required for full functionality of this plugin; incompatible features are automatically disabled. Please upgrade if possible.

Questo significa che dove è ospitato il mio sito non è attivo php5 vero?
Infatti la funzione Minify non è attiva.
A cosa serviva? è necessaria?

Infine non ho capito come si setta CDN.
basta cliccare sui bottoni upload includes files, upload theme files
e upload custom files?

Ultima cosa. come settare alla meglio il Database Chache Settings?

grazie mille
Infine non ho capito

Andrea Pernici 16 Maggio 2010

Ciao Davide. Si vuol dire che non hai PHP5.

Per la CDN devi prima usarne una per abilitarla.

stefano 25 Maggio 2010

Eccezionale, una scheggia, poco più di un secondo e le pagine vengono create, mai visto nulla di così veloce, quasi istantaneo..attendo qualche giorno e voglio vedere sul WMT se è cambiato qualcosa

Andrea Pernici 25 Maggio 2010

Bene Ste…sono felice 🙂
Facci sapere come reagisce WMT.

dam 12 Settembre 2010

Ma voi fate spesso “ottimizza e ripara” sulle tabelle mysql?

Al di là delle iper configurazioni e plugin se una tabella si corrompe ne risente in prestazioni tutto il sistema… e dalla mia esperienza wordpress soffre di questo problema. Anche a voi capita?

Ho notato questa cosa nei momenti di molti commenti inseriti in brevi commenti…

Gale 24 Settembre 2010

Vedo però che ora usi APC come Opcode cache. Dove hai messo il file temporaneo di APC? viene scritto sul disco o nella shm? Lo chiedo perché di default APC usa il metodo mmap, quindi salva la cache sul disco fisico e non nella ram (shared memory). E per curiosità, quanti mega ti consuma?

Andrea Pernici 9 Ottobre 2010

Ciao Gale, ovviamente dipende tutto da come lo configuri.
Nel mio caso il consumo non è eccessivo e rimane sotto i 30 Mega.

Mauro Mandracchia 29 Ottobre 2010

Ciao Andrea,
nell’istallazione w3 Total Cache e XCache, riscontro un fastidioso problema. Nell’inserimento/aggiornamento di un post/pagina, mi ritrovo sempre su una pagina bianca.
Sai da cosa può essere dovuto? Ho bisogno di una configurazione particolare? Ho provato ad aggiungere nelle pagine escluse la pagina “post\.php” nessun risultato.

Grazie anticipate, per qualsiasi risposta.

Andrea Pernici 29 Ottobre 2010

Mmm non credo che sia un problema di W3 Total Cache, ma forse di qualche incompatibilità con qualche altro plugin.

Mauro Mandracchia 29 Ottobre 2010

Provando tra i vari settaggi, il problema sta in XCache.
Nello specifico nella Cache degli “Object Cache” con XCache.

Ho risolto impostando quest’ultima voce su “disk”.
Sembra tutto ok.

Andrea Pernici 29 Ottobre 2010

Ottimo Mauro…grazie per aver condiviso la soluzione.

Massimo Fanti 4 Gennaio 2011

Ciao a tutti,
ne approfitto per fare una domanda per cercare di risolvere i problemi su un mio sito.

Ho circa 20.000 unici giornalieri e 2 server dedicati:

WebServer:
Dual Intel Quadcore Xeon (8 CPU) – 8 x 2,0 Ghz
8GB Ram REG ECC
500GB in RAID 5

DB Server:
– AMD Opteron 144 (1 cpu)
– GB DDR
– 2 x 160 GB RAID 1

Il mio grosso problema è che non posso attivare la cache sugli oltre 11.000 articoli presenti in quanto faccio uscire pubblicità degli autori alternata con altra pubblicità (secondo parametri precisi).

Il sito nel primo pomeriggio (ormai quasi tutti i giorni) va down e devono riavviare il webserver.

Esiste una possibilità di cachare tutto l’articolo escluse le parti della pubblcità?

Avete qualche consiglio da darmi?

Grazie mille!

Andrea Pernici 4 Gennaio 2011

Sei sicuro che dipenda dalla mancanza di cache e non da qualche script o plugin fatto male ?

Comunque sia alla tua domanda rispondo dicendoti che quello che vuoi fare è possibile con W3 Total Cache specificando quale script non va cachato nel campo dove si possono escludere dalla cache alcuni file.

Massimo Fanti 4 Gennaio 2011

Grazie mille!

Beh…il fatto è che ogni articolo fa una serie molto elevata di richieste al server, indipendentemente dagli script/plugin.

In che modo W3 Total Cache permette l’esclusione dalla cache di alcuni script?

Significa che nel mio template posso specificare una parte di codice (che richiama il plugin) da non cachare?

Grazie ancora!

Andrea Pernici 4 Gennaio 2011

Mi sembra molto strano che con quelle visite riesci a buttar giù 2 server con 8 processori.

Comunque in W3 nella sezione “Never cache the following pages” e “Cache exception list”
puoi specificare cosa non mandare in cache.

Massimo Fanti 4 Gennaio 2011

Io attualmente sto usando wp-cache e nelle esclusioni dalla cache ho dovuto mettere i singoli post.

Da quello che mi dici invece con W3 posso escludere il singolo plugin o la singola parte di articolo?

Grazie!!!

Luigi 8 Settembre 2011

Ciao Andrea,
Complimenti come sempre per l’articolo. Io recentemente sto avendo problemi con il mio sito che è stato sospeso dato delle query troppo grandi.
Faccio poco più di 400 visite al giorno quindi non me la sento di passare ad un server privato.
Cosa mi consigli per risolvere questo problema di query?
Utilizzo attualmente WP Super Cache.
Come posso muovermi per salvaguardare MySQL?
Grazie come sempre

Andrea Pernici 8 Settembre 2011

Ciao Luigi, puoi provare ad usare w3 total cache che permette di fare caching anche delle query.
In alternativa controlla i plugin e il tema che usi il numero di query che fanno.

Con pochi semplici mosse potresti risolvere.

Luigi 8 Settembre 2011

E poi conosci qualche plug-in che tiene pulito il database?

Andrea Pernici 8 Settembre 2011

Wp CleanFix oppure Wp Optimize.

Luigi 8 Settembre 2011

Grazie per le risposte rapidissime!!
Vorrei mettere da subito W3 Tatal Cache. Ma avrà grosse ripercussioni sulla CPU?

Ho trovato comunque il plug-in che mi ha incrementato troppo le query. E’ stato StatPress (Plug-in di statistiche in tempo reali sul sito)
Vorrei trovare una alternativa visto che questo bel plug-in non faceva scappare nulla come dati di visite ecc..

Ho anche svuotato a mano tutte le tabelle dei plug-in e statpress era arrivato alla bellezza di 180mb 🙂

fausto 11 Maggio 2012

Ciao andrea. Scusa la mia curiosità ma… io ho impostato il caching tramite impostazione moduli su file htaccess pensi che il risultato sia migliore usando i plugin citati ? ciao grazie

Andrea 14 Maggio 2012

Ciao Fausto.

Cosa intendi con caching tramite impostazione moduli su file htaccess ?

fausto 14 Maggio 2012

ciao. Intendo impostare il caching inserendo le impostazioni al file htaccess ovvero il mod_headers.c – mod_expires.c – ecc ecc… ciao 🙂

Andrea 14 Maggio 2012

Le direttive che indichi non servono per fare il caching delle pagine wordpress, ma a settare la scadenza delle risorse lato browser.

Sicuramente servono, ma non si tratta propriamente di caching wordpress.

Valerio 22 Settembre 2012

Ciao Andrea, avrei una domanda per te: Hai provato anche a programmare gli articoli con W3 Total Cache attivo? Non ti da problemi nella pubblicazione di “Programmazione Mancante”? Hai idea di quale possa essere il problema?

Andrea Pernici 29 Settembre 2012

Ciao Valerio.
Non non ho mai provato purtroppo.

Alessandro 7 Marzo 2013

Ciao,

interessante articolo. In effetti, l’uso di un Opcode Cache migliora le notevolmente le prestazioni di un sito. XCache, APC ed eAccellerator, sono tre ottimi software, la scelta va fatta soprattutto in base alla configurazione del proprio server.

Per Nginx + php-fpm, mi sento di consigliare APC.
Per Apache e Litespeed, XCache o eAccellerator.

In linea di massima, ho riscontrato maggiori miglioramenti con XCache, che è anche il più aggiornato, l’autore è lo stesso di lighttpd. Anche APC è buono, ma leggermente più lento.
eAccellerator è molto veloce e si integra bene con la maggior parte delle configurazioni; unico neo, non è più aggiornato dal 2010 e non ha una community molto attiva alle spalle.

W3 Total Cache offre inoltre, la possibilità di utilizzare di utilizzare APC, XCache o Memcached, come object cache, ma non dimentichiamoci che i primi due già di default ottimizzano ed accellerano PHP, quella è un’ulteriore funzione.

Per ambienti multi-server, penso Memcached sia la soluzione migliore.

Come suggeriva Andrea, il vero trucco sta sempre nel “testare”. Testare, testare e testare. Solo al termine di essi, è possibile trovare la migliore combinazioni e configurazione per i propri progetti.

Saluti!

Leave a Comment
About Me
about-me
Andrea Pernici

Chief Technology Officer at Search On Media Group and 3BMeteo.com

Categories
  • Apache 2.2
  • Blog e Social
  • CSS
  • Featured Articles
  • Google
  • Grafica
  • Linux
  • Marketing
  • Politica
  • Programmazione
  • Seo
  • Sicurezza
  • Sport
  • Varie
  • Viaggi
  • Video
  • WebServer
Popular Post
  • Corso HTML per SEOlunedì - Dicembre 05, 2022
  • Antonio Jelich e Pallamano 85. La terza di campionato.lunedì - Marzo 15, 2021
  • How to Dominate “Google In-The News” Box (aka “Top Stories”)…lunedì - Maggio 08, 2017
  • WordPress Brute Force Attacks: lock your wp-login.php with ModSecuritymercoledì - Ottobre 28, 2015
  • All the small things that make a great productmartedì - Ottobre 27, 2015
Tags
Andrea Pernici apache Bug Google Convegno gt Convegno SEO Design Errori Google Eventi SEO Facebook Facebook Like Google Google Maps Google News Sitemap Google Plus Google profile gtConference gt study days instantempo Instant Previews Joomla Linkedin Linux Loghi Marketing Matt Cutts Meteo migliori tweet Open Source Ottimizzare Wordpress Page Speed Rich Snippet script Seo SERP shell Significati Nascosti Sociable italia Social Network Twitter Usabilità Web Performance WebProNews Web Server Apache Wordpress Wordpress plugin
Recent Comment
  • Come fare Redirect 301 di una pagina web giovedì - Maggio 06, 2021 08:44 am
  • Come fare Redirect 301 di una pagina web martedì - Maggio 04, 2021 02:03 pm
  • Come fare Redirect 301 di una pagina web sabato - Aprile 10, 2021 02:05 pm
  • Come fare Redirect 301 di una pagina web venerdì - Aprile 09, 2021 11:02 pm
  • Come fare Redirect 301 di una pagina web giovedì - Aprile 01, 2021 10:08 am
© 2017 Andrea Pernici - SEO, Design & Technology as attitudes - Me on freebase - Privacy Policy