Skip to content

Briganteggiando

Il blog di Francesco Placco

Briganteggiando

Risolvere (rapidamente) l’errore Redis OOM

Francesco Placco

Lavorare con i sistemi di caching non è facile, sopratutto quando si ha la testa stanca. Bilanciare il carico di lavoro tra i sistemi lato web e lato server è fondamentale per ottimizzare le prestazioni di portali particolarmente corposi – come quello che ho appena messo online – e garantire dei tempi di risposta accettabili. E non è raro trovarsi a fare i conti con errori di calcolo o, più banalmente, di battitura.

Questa mattina, di punto in bianco, il sito è risultato irraggiungibile con il seguente errore:

oom command not allowed when used memory > 'maxmemory'

In parole povere, vuol dire che tutto lo spazio allocato per la cache è stato usato, e che questa sostanzialmente è piena. Allocare uno spazio fisso per la cache è una delle best-practice da tenere a mente quando si lavora a questi progetti: lasciare un uso virtualmente illimitato alla cache rischia di inchiodare il server di fronte a grandi flussi di traffico.

In questi casi, invece, si può intervenire molto velocemente e riportare il sito online in pochi minuti, quanto meno se il sistema è integrato con WordPress. Per prima cosa, bisongna accedere alla directory del nostro hosting ed intervenire sul file /wp-config/object-cache.php. Questo passaggio è necessario se utilizzare l’apposito plugin di Redis, altimenti dovrete modificare direttamente il file di configurazione di WordPress.

Il mio consiglio è: non cancellate il file, come consiglia di fare la schermata di errore. Rinominatelo (io ad esempio aggiungo il classico old alla fine, prima dell’estenzione) perchè poi potrete riattivalro senza errori a fine operazione, e senza dover reinstallare/riconfigurare il plugin di Redis. Una cosa in meno da fare.

A questo punto, bisogna accedere via SSH al vostro server ed andare a modificare il file di configurazione di Redis. Il percorso dovrebbe essere lo stesso per tutte le installazioni, ossia /etc/redis/redis.conf. Non perdete tempo con le impostazioni configurabili da linea di comando, perchè ad ogni riavvio verrebbero azzerate. Aprite il file in questione con i privilegi di root ed usando l’editor che preferite (io sono rimasto a vi) ed impostate i seguenti comandi:

maxmemory 12gb
maxmemory-policy allkeys-lru

Bisogna ovviamente aumentare lo spazio allocato per la cache. Io lo avevo settato, sbagliando, a 2GB, invece vado ad impostarne 12GB (come doveva essere all’inizio). Inoltre, è importante settare la policy che rimuove automaticamente le vecchie richieste, meno utilizzate rispetto ad altre, quando si raggiungono i limiti di cache. Se non è attiva, inserire manualmente la stringa subito dopo la definizione di default.

Fatto questo, non vi resta riavviare Redis:

systemctl redis restart

Ed al riavvio, giusto per farlo ripartire da zero, lanciare una pulizia totale della cache immagazzinata:

redis-cli FLUSHALL

Questi due comandi vanno lanciati sempre con il privilegio di root. Potete poi verificare i nuovi parametri con il comando:

redis-cli INFO memory

Fatto questo, tornate nella directory di WordPress e rimettere il nome originale al file che avevate rinominato. A questo punto il vostro sito era già nuovamente raggiungibile, mentre la configurazione di Redis si ristabilità in autonomia. In totale ci possono volere si e no 5 minuti contro gli anche 15 di riavvio di un server in caso di sovraccarico.

  • Share on Bluesky
  • Condividi su Facebook
  • Condividi su X
  • Share on Threads
  • Condividi su LinkedIn
  • Condividi su Reddit
  • Condividi su Tumblr
  • Condividi su Pinterest
  • Condividi su Flipboard
  • Condividi su WhatsApp
  • Condividi su Telegram
  • Condividi su Pocket
  • Spedisci questa pagina via email

Categorie:

Tecnologia

Etichette:

Internet

Pubblicato il:

18 Settembre 2025

Successivo:

Attenzione alle “statistiche” di Cloudflare

Precedente:

La sinistra riparta da Iacchetti

Lascia un commento Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

  • Info
  • Lavoro
  • Pubblicazioni
  • Progetti
  • Copyleft
  • Privacy

WordPress · Hola