Come gestire la RAM di WordPress in modo efficace [programmazione]

Come gestire la RAM di WordPress in modo efficace [programmazione]

Se il nostro WordPress rallenta improvvisamente è perchè probabilmente presenta problemi di RAM, o quantomeno questa potrebbe essere una causa plausibile. Bisogna dire anzitutto che non si tratta di una situazione normale: WP è un blog, non dovrebbe occupare tanta memoria, ma se i visitatori aumentano questa percentuale di RAM può aumentare di pari passo, specialmente nel caso in cui il sistema non sia ben configurato in termini di gestione della cache, ad esempio. Questo provoca rallentamenti sul sito o addirittura il suo blocco totale, con richiesto riavvio della macchina da parte dell’hosting. Se succede questo, può darsi che qualcosa non sia configurata o non vada a livello di cache del sistema operativo.

In ogni caso, è bene sapere che non è aumentando la RAM in modo indiscriminato che risolverete i vostri problemi, anche se alcuni hosting vi spingeranno a farlo per ovvie ragioni.

Configurare la cache di Apache via SSH

Se abbiamo accesso alla shell via SSH, anzitutto, dobbiamo verificare che la cache (nel caso di Apache) sia effettivamente abilitata: per farlo, scriviamo nel terminale dopo aver fatto login

pico /etc/apache2/mods-available/disk_cache.conf

ed andremo così ad editare il file in questione /etc/apache2/mods-available/disk_cache.conf, avendo cura di togliere il # di fronte alla direttiva CacheEnable.

Screen 2014-09-03 alle 12.05.28

Ammettendo di essere su un server Debian Linux, andremo quindi a dare i seguenti comandi:

a2enmod cache
a2enmod disk_cache
/etc/init.d/apache2 force-reload
service apache2 restart

di seguito il log delle operazioni da me effettuate, se dovesse apparire htcacheclean…not running digitate di seguito gli ultimi due comandi appena riportati.

root@debian:~# a2enmod cache
Enabling module cache.
To activate the new configuration, you need to run:
service apache2 restart
root@debian:~# a2enmod disk_cache
Considering dependency cache for disk_cache:
Module cache already enabled
Enabling module disk_cache.
To activate the new configuration, you need to run:
service apache2 restart
root@debian:~# service apache2 restart
[....] Restarting web server: htcacheclean...not running
[ ok he2 ... waiting .
root@debian:~# /etc/init.d/apache2 force-reload
[ ok ] Reloading web server config: apache2.
root@debian:~# service apache2 restart
[ ok ] Restarting web server: htcacheclean apache2 ... waiting .
root@debian:~#

Fatto questo, tenendo conto che spesso i rallentamenti sono dovuti ad una crescita spropositata dei file di cache, sfruttiamo l’utility di Apache per cancellarli in automatico, ad esempio:

htcacheclean -d60 -n -t -p /var/cache/apache2/mod_disk_cache -l 80M -i

un daemon che viene lanciato in questo caso ogni ora, che evita che il file di cache superi gli 80 MB e che potete sia lanciare da terminale che inserire tra le operazioni automatiche di Debian, così ve lo ritroverete pronto in caso di reboot:

pico /etc/rc.local

ed inserite tra le righe quanto visto in precedenza, salvando poi il risultato.

Se la cache è già abilitata, invece, su hosting condiviso per intenderci, non c’è modo nè bisogno di intervenire in questi termini. Passiamo ora alla fase di monitoraggio della RAM di WordPress.

Monitorare la memoria RAM usata da WP

In termini generali per monitorare la RAM lasciata libera a livello di sistema operativo, da shell SSH dopo aver fatto login bisogna digitare:

free -m

e si vedrà qualcosa del genere:

total       used       free     shared    buffers     cached
Mem:           998        529        469          0         46        164
-/+ buffers/cache:        318        680
Swap:          957         41        916

Uno dei plugin basilari per monitorare la RAM sfruttata da WordPress in tempo reale è WP Memory Usage, che mostra il consumo di RAM del sistema sia nel footer del backend amministrativo che nel theme (pubblicamente). Esiste anche un plugin più avanzato per monitorare l’uso di risorse: è stato sviluppato da GoDaddy e lo trovate col nome P3 (Plugin Performance Profiler) : esso permette di vedere chiaramente quali plugin siano più usati durante una sessione media di lavoro, che potete effettuare in automatico oppure manualmente. In questo modo potrete segnarvi i plugin più dispendiosi e:

  1. rimuoverli o disattivarli temporaneamente (per utenti medi);
  2. sostituirli con altri equivalenti oppure con frammenti di codice all’interno del child-theme, cambiando se necessario le politiche interne del sito (per utenti esperti).

Abbiamo poi l’ulteriore plugin di monitoraggio WP Debug Bar, che permette di visualizzare informazioni sulle prestazion del blog, numero di query ed altro ancora, Wp System Health (che mostra anche le prestazioni dell’hosting su cui vi trovate) e l’ottimo TCP Memory Usage, ideale per i casi più critici.

Come intervenire su WP per ridurre la RAM utilizzata

In linea di massima dipende, non c’è una regola generale ma il più delle volte si risolve riducendo il numero di plugin installati: basta utilizzare uno di questi plugin alla volta, installarlo, fare il test, prendere nota dei risultati e poi agire di conseguenza su WP: gli interventi possono essere codificati da ulteriori plugin ma, molto più comunemente, richiedono azioni drastiche da parte dell’utente come cambiare hosting, cambiare theme, modificare il codice del child e così via. Un’altra possibilità concreta è legata a theme child fatti male, nel qual caso il problema non dovrebbe più verificarsi se cambiate theme, per l’appunto.

C’è anche da ricordare che, in questi casi, non esiste un approccio unificato o troppo sistematico: tutto dipende da quello che è il problema, anche se a volte i plugin di cache riescono ad alleggerire il carico, ammesso che siano ben configurati. Potete a tale riguardo usare sia Super Cache che W3 Total Cache, per quanto una terza alternativa leggera e pratica (e poco nota) sia WP Fastest Cache, che ho testato su un hosting WordPress su VPS che mi stava dando un po’ di problemi di RAM (saturazione + blocco del server con molti visitatori).

Photo by stevendepolo

Ti piace questo articolo?

0 voti

Su Trovalost.it puntiamo sulla qualità dei contenuti da quando siamo nati: la tua sincera valutazione può aiutarci a migliorare ogni giorno.