Aggiornato il: 12-05-2023 07:56
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.
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:
- rimuoverli o disattivarli temporaneamente (per utenti medi);
- 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

Ingegnere informatico per passione, consulente per necessità, docente di informatica; ho creato Trovalost.it e ho scritto quasi tutti i suoi contenuti. Credits immagini: pexels.com, pixabay.com, wikipedia.org, Midjourney, StarryAI, se non diversamente specificato. Questo sito non contiene necessariamente suggerimenti, pareri o endorsement da parte del proprietario del progetto e/o espressi a titolo personale. Per contatti clicca qui