Configurazione di base di Memcache


14

Ho installato memcache per un sito Drupal con l'estensione pecl memcached. Funziona tutto bene ma sto ancora lottando con le impostazioni di configurazione.

Ad esempio, seguendo i consigli su drupal.org

You should probably lock down the memcache server so that it only listens for 
connections from the hosts that need to be served, as the default is that 
memcache listens to connections from all addresses. 
So, to close that hole, edit /etc/sysconfig/memcached with:

OPTIONS="-l ${HOSTIP}"

Il problema è che non ho questo file sul mio server, in ogni caso non in questa posizione. Alcuni altri articoli hanno menzionato /etc/memcached.conf ma non riesco nemmeno a trovare questo file.

Considerando che / etc / sysconfig / memcached o /etc/memcached.conf non si chiudono sul mio server, posso crearli in modo sicuro? È possibile che questi file si trovino altrove, nel qual caso dove dovrei cercare o c'è un modo per trovare quelle informazioni?

Infine, qualsiasi risorsa, tutorial o collegamento alla documentazione sarebbe molto apprezzato. Ho visitato il sito Wiki di memcache e ho trovato solo un paio di articoli pertinenti per i principianti.


1
Le istruzioni drupal sono errate. L' -lopzione regola le interfacce che ascolteranno memcached, non quali host verranno serviti.
Wayne Conrad,

Risposte:


17

Non ci hai parlato del tuo sistema operativo / distribuzione. Inoltre, non ci hai detto come hai installato memcached.

Di solito, si ottiene un file di configurazione di esempio /etc/quando si installa memcached usando apt-getsotto sistemi basati su debian e rpmo yumsotto redhat, fedora o centos.

Se lo hai installato dal sorgente, potresti non ottenere un file di esempio in /etc/(Non ho installato memcached dal sorgente da solo). Tuttavia, è possibile cercare un file di configurazione di esempio nella cartella di origine decompressa.

Ad ogni modo, puoi usarlo locate memcached.confper cercarne uno nel tuo sistema. È necessario farlo sudo updatedbprima di aggiornare la cache di ricerca.

Ecco il file di configurazione dal mio sistema. Puoi usarlo:

# Run memcached as a daemon. This command is implied, and is not needed for the
# daemon to run. See the README.Debian that comes with this package for more
# information.
-d

# Log memcached's output to /var/log/memcached
logfile /var/log/memcached.log

# Be verbose
# -v

# Be even more verbose (print client commands as well)
# -vv

# Start with a cap of 64 megs of memory. It's reasonable, and the daemon default
# Note that the daemon will grow to this size, but does not start out holding this much
# memory
-m 64

# Default connection port is 11211
-p 11211
# Run the daemon as root. The start-memcached will default to running as root if no
# -u command is present in this config file
-u memcache

# Specify which IP address to listen on. The default is to listen on all IP addresses
# This parameter is one of the only security measures that memcached has, so make sure
# it's listening on a firewalled interface.
-l 127.0.0.1

# Limit the number of simultaneous incoming connections. The daemon default is 1024
# -c 1024

# Lock down all paged memory. Consult with the README and homepage before you do this
# -k

# Return error when memory is exhausted (rather than removing items)
-M

# Maximize core file limit
# -r

Puoi anche passare le stesse opzioni dalla riga di comando.


Debian GNU / Linux 5.0.9 (lenny) / memcached 1.4.10. Ho passato così tanti passaggi per installare memcache che non ricordo per certo come l'ho fatto. Potrebbe essere stato compilato dal sorgente poiché mancano questi file di configurazione. So per certo che le estensioni pecl sono state installate dal sorgente, semplicemente perché l'uso di pecl non ha funzionato. Guardando la cartella di origine, non saprei dire quale sarebbe il file di configurazione di esempio ...
PatrickS,

@PatrickS: ho aggiornato la mia risposta.
Khaled

Ho finito per creare /etc/init.d/memcached utilizzando le opzioni della riga di comando sopra per configurare memcache
PatrickS

11

L'impostazione predefinita (CentOS) / etc / sysconfig / memcached:

PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""

Lo script init (CentOS) /etc/init.d/memcached:

...
if [ -f /etc/sysconfig/memcached ];then
        . /etc/sysconfig/memcached
fi
...

Quanto sopra equivale a, se il file esiste, "sorgente" (cioè leggere e valutare il suo contenuto).

Per quanto ne so, memcached non ha un file di configurazione. Utilizza i parametri della riga di comando , ad esempio (da uno script init RHEL / CentOS):

daemon --pidfile ${pidfile} memcached -d -p $PORT -u $USER  -m $CACHESIZE -c $MAXCONN -P ${pidfile} $OPTIONS

(Noterai che le variabili sopra definite, sono utilizzate qui).

La linea di fondo, quindi, è:

  • Controlla il tuo script init - se contiene una sezione simile a quella sopra (l'istruzione if), quindi crea il file corrispondente e inserisci in esso le variabili appropriate.
  • Non esiste un file di configurazione: non crearne uno in quanto non verrà utilizzato.

3

Se non riesci a trovare su CentOS /etc/init.d/memcached prova questo:

nano /usr/lib/systemd/system/memcached.service

e cambia:

ExecStart=/usr/bin/memcached -u $USER -p $PORT -m $CACHESIZE -c $MAXCONN $OPTIONS

per:

ExecStart=/usr/bin/memcached -u $USER -p $PORT -m $CACHESIZE -I $MAXITEMSIZE -c $MAXCONN $OPTIONS

Dopo aver aggiunto in / etc / sysconfig / memcached

MAXITEMSIZE="128m"

Riavvia memcached

service memcached restart

Per verificare se viene aggiunto un parametro, provare:

ps aux | grep memcached
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.