Configuración básica de Memcache

14

He instalado memcache para un sitio Drupal con la extensión pecl memcached. Todo funciona bien, pero todavía estoy luchando con la configuración.

Por ejemplo, siguiendo los consejos de 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}"

El problema es que no tengo este archivo en mi servidor, en cualquier caso, no en esta ubicación. Algunos otros artículos han mencionado /etc/memcached.conf pero tampoco puedo encontrar este archivo.

Teniendo en cuenta que / etc / sysconfig / memcached o /etc/memcached.conf no salen en mi servidor, ¿puedo crearlos con seguridad? ¿Es posible que estos archivos estén ubicados en otro lugar, en cuyo caso, dónde debería buscar o hay alguna forma de encontrar esa información?

Finalmente, cualquier recurso, tutoriales o enlaces de documentación serían muy apreciados. He hojeado el sitio Wiki de memcache, y solo pude encontrar un par de artículos relevantes para principiantes.

PatrickS
fuente
1
Las instrucciones de drupal son incorrectas. La -lopción regula a qué interfaces escuchará memcached, no qué hosts serán atendidos.
Wayne Conrad

Respuestas:

17

No nos contó sobre su sistema operativo / distribución. Además, no nos dijo cómo instaló memcached.

Por lo general, obtendrá un archivo de configuración de muestra /etc/cuando instale memcached utilizando apt-getsistemas basados ​​en Debian y / rpmo yumen redhat, fedora o centos.

Si lo instaló desde la fuente, es posible que no obtenga un archivo de muestra /etc/(no instalé memcached desde la fuente yo mismo). Sin embargo, puede buscar un archivo de configuración de muestra en la carpeta de origen desempaquetada.

De todos modos, puede usar locate memcached.confpara buscar uno en su sistema. Debe hacerlo sudo updatedbantes de eso para actualizar el caché de búsqueda.

Aquí está el archivo de configuración de mi sistema. Puedes 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

También puede pasar las mismas opciones desde la línea de comando.

Khaled
fuente
Debian GNU / Linux 5.0.9 (lenny) / memcached 1.4.10. Pasé por tantos pasos para instalar memcache que no puedo recordar con certeza cómo lo hice. Es posible que se haya compilado desde el origen ya que faltan estos archivos de configuración. Sé con certeza que las extensiones pecl se instalaron desde el origen, simplemente porque usar pecl no funcionó. Mirando la carpeta de origen, no podría decir cuál sería el archivo de configuración de muestra ...
PatrickS
@PatrickS: Actualicé mi respuesta.
Khaled
Terminé creando /etc/init.d/memcached usando las opciones de línea de comando anteriores para configurar memcache
PatrickS
11

El valor predeterminado (CentOS) / etc / sysconfig / memcached:

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

El script de inicio (CentOS) /etc/init.d/memcached:

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

Lo anterior equivale a, si el archivo existe, 'fuente' (es decir, leer y evaluar su contenido).

Que yo sepa, memcached no tiene un archivo de configuración. Utiliza parámetros de línea de comandos , por ejemplo (de un script de inicio RHEL / CentOS):

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

(Notará que las variables definidas anteriormente, se usan aquí).

La conclusión, por lo tanto, es:

  • Verifique su secuencia de comandos de inicio: si contiene una sección similar a la anterior (la instrucción if), cree el archivo correspondiente y coloque las variables apropiadas en él.
  • No hay archivo de configuración: no cree uno, ya que no se utilizará.
cyberx86
fuente
3

Si no puede encontrar en CentOS /etc/init.d/memcached intente esto:

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

y cambio:

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

a:

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

Después de agregar en / etc / sysconfig / memcached

MAXITEMSIZE="128m"

Reiniciar memcached

service memcached restart

Para verificar si se agrega el parámetro, intente:

ps aux | grep memcached
onalbi
fuente