Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Memcached: Installazione e Configurazione

Configuriamo Memcached su un server web virtuale basato su Aruba Cloud, ottimizzandone le performance di risposta ai client che ne richiedono i servizi.
Configuriamo Memcached su un server web virtuale basato su Aruba Cloud, ottimizzandone le performance di risposta ai client che ne richiedono i servizi.
Link copiato negli appunti

In questa lezione vedremo come configurare il nostro server web virtuale basato su Aruba Cloud, in modo da sfruttare Memcached, al fine di ottimizzarne le performance di risposta ai client che ne richiedono i servizi.

Introduzione

In generale, l’utilizzo di una o più memorie cache in un sistema informativo permette di ottimizzare l’uso delle risorse ed i tempi di elaborazione dello stesso. In tutti quei casi in cui vi sono delle elaborazioni che si ripetono frequentemente, accedendo agli stessi dati in input e quindi, producendo lo stesso risultato in output, è preferibile ricorrere ad una cache per memorizzare l’output ottenuto e ridurre i tempi di risposta.

Proseguendo con la configurazione del nostro server web virtuale, possiamo considerare un sito web dinamico. Esso effettuerà una serie di elaborazioni ogni volta che un utente richiederà la pagina iniziale del sito attraverso il proprio browser, ad esempio, accedendo al database per ottenere la lista degli articoli. È probabile che, sebbene il sito sia dinamico, il contenuto della pagina iniziale non cambi per diverse ore, ad esempio finché uno degli amministratori non pubblicherà un nuovo articolo. Se la lista degli articoli venisse memorizzata in una cache lato server, le successive richieste potrebbero essere servite utilizzando il contenuto della cache invece di procedere ripetendo tutte le elaborazioni.

Data l’eterogeneità delle tecnologie oggi impiegate per lo sviluppo di applicazioni web, si è resa necessaria l’implementazione di tecnologie di caching general purpose, che permettano di memorizzare e recuperare dati di qualsiasi natura. Per soddisfare questa esigenza la maggior parte dei sistemi di caching general purpose è implementata come dizionario chiave-valore, interamente o parzialmente contenuto in RAM. In un object store chiave-valore, ogni entry è identificata da una chiave univoca: in scrittura bisogna quindi inviare allo store sia i dati da memorizzare (object) che la relativa chiave; in lettura, si effettua una richiesta con la chiave di interesse e la cache risponde, se la relativa entry esiste, con il valore corrispondente.

Memcached

Memcached è un object store distribuito utilizzato appunto come cache in-memory, basato su un’architettura di tipo client-server. Le istanze server memorizzano gli oggetti in memoria e gestiscono quindi il dizionario condiviso. I client accedono ai server mediante connessione TCP o attraverso datagrammi UDP (per default sulla porta 11211). Esistono diverse implementazioni del protocollo lato client per vari linguaggi e tecnologie. Ad esempio, PHP dispone di un’apposita estensione per connettersi facilmente ad uno o più server memcached.

Installazione

In ambiente Ubuntu, memcached è disponibile nei repository ufficiali. Per installarlo è sufficiente quindi utilizzare il comando apt:

# apt install memcached libmemcached-tools

Al termine dell’installazione, è sufficiente procedere con l’avvio e l’abilitazione del servizio (avviare il servizio automaticamente al boot). In un ambiente basato su systemd, ciò si traduce nei due comandi seguenti:

# systemctl start memcached
# systemctl enable memcached

Come per ogni altra unit gestita da systemd, è possibile monitorare lo stato di esecuzione del servizio con il comando:

# systemctl status memcached

Se tutto procede come previsto, il servizio dovrebbe essere attivo ed in esecuzione.

Configurazione

La configurazione di memcached è piuttosto semplice. Le poche opzioni disponibili nel file di configurazione (/etc/memcached.conf) sono le stesse che è possibile passare all’eseguibile memcached come argomenti della riga di comando. In particolare:

  • -p che specifica il numero di porta su cui il servizio resterà in ascolto (11211 per default);
  • -l che specifica l’indirizzo IP su cui il servizio resterà in ascolto (localhost per default);
  • -m che definisce la dimensione massima della cache in MB;
  • -c indica il numero massimo di connessioni simultanee accettate (1024 per default);

Per una lista completa delle opzioni di configurazione si rimanda alla pagina man del servizio, disponibile online, oppure in locale con il comando:

# man memcached

Per l’utilizzo di memcached da parte di applicazioni sviluppate in PHP (ad esempio un CMS come WordPress) bisognerà installare la relativa estensione con il comando:

# apt install php-memcached

Per ottenere una conferma della corretta installazione, è possibile controllare l’output della funzione phpinfo(), che mostrerà un’intera sezione dedicata a memcached, indicando numero di versione del server, della libreria client ed altre informazioni relative alla particolare istanza.

Ti consigliamo anche