systemadmin.es > LAMP y web > Instalación de memcached

Instalación de memcached

Anteriormente ya hemos comentado memcached, tanto referente al protocolo de memcached cómo a la monitorización con Nagios.

Vamos a ver exactamente que es y como se instala.

memcached es un sistema de cache en memória distribuida. Se trata de una tabla de hash distribuida entre todos los nodos que tengan el daemon. Cuando un nodo se llena se aplica la política de vaciado: primero lo que menos se accede.

Su uso típico consiste en buscar primero si el contenido esta disponible en memcached, si éste no esta disponible se buscar al otro sistema de almacenaje más lento, como puede ser un motor de bases de datos.

Por esta razón la aplicación se debe desarrollar teniendo en cuenta que si ninguno de los nodos memcached no esta disponible la aplicación no falle, sinó que busque el contenido por el sistema alternativo. Evidentemente el fallo de memcached implicará una degradación del rendimiento de la aplicación.

Entre sus usuarios esta LiveJournal, para el cual fue dessarollado, Slashdot, twitter, Facebook o la conocida web de búsqueda de torrents The Pirate Bay, entre muchos otros.

Para su instalación, seguramente faltará primer libevent. Para su instalación los passos són:

cd /usr/local/src
wget http://monkey.org/~provos/libevent-1.4.8-stable.tar.gz
tar xzf libevent-1.4.8-stable.tar.gz
cd libevent-1.4.8-stable
./configure --prefix=/usr/local/ --exec-prefix=/usr/local/
make && make install
echo "/usr/local/lib" > /etc/ld.so.conf.d/local.conf
ldconfig

A continuación passamos a descargar memcached y instalarlo en el sistema, para el caso de un sistema de 64 bits añadimos el parámetro del configure enable-64bit:

wget http://www.danga.com/memcached/dist/memcached-1.2.6.tar.gz
tar xzf memcached-1.2.6.tar.gz
cd memcached-1.2.6
./configure --prefix=/usr/local/ --exec-prefix=/usr/local/ \
                   --enable-64bit
make && make install
useradd memcached

Con estos sencillos passos ya disponemos de memcached listo para usar el en sistema. Existen ciertos parámetros interesantes para el daemon:

  • -l Permite definir la dirección a la que escucha el daemon. Por defecto es a INDRR_ANY, por lo que sería más conveniente especificar una dirección en concreto.
  • -u Define el usuario al que debe cambiar, resulta útil cuando lanzamos el daemon como root (por ejemplo como script d’inicio) y el mismo se reduce los privilegios
  • -m Indica el tamaño de memória que va a usar
  • -c Especifica el número máximo de conexiones simultáneas
  • -p Define el número de puerto a utilizar, por defecto es el 11211
  • -t Indica el número de threads a usar. Generalmente no tiene sentido usar más que CPUs dispónibles en el equipo. (Por defecto 4)

Por otro lado existen otros parámetros para definir mejor el comportamiento de memcached, como són el tamaño mínimo de bytes por entrada, o el factor que se usa para calcular el tamaño de los bloques de memória que se reservan. Éstos dependen mucho de los datos de la aplicación, por lo que si su uso es muy específico y controlado pueden ayudar a reducir el tamaño de memória desperdiciada.

Por otro lado, para su uso en un entorno de producción, lo más recomendable sería usar alguna herramienta de babysitting (monitorización proactiva) como pueden ser las daemontools. Para ellas el script run podría ser, dependiendo de los parámetros:

mkdir -p /usr/local/supervise/memcached
cat <<EOF > /usr/local/supervise/memcached/run
#!/bin/bash
exec /usr/local/bin/memcached -u memcached -l 127.0.0.1 -c 1024 -m 128
EOF
chmod +x /usr/local/supervise/memcached/run
ln -s /usr/local/supervise/memcached/ /service/

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>