systemadmin.es > LAMP y web > Reinicio automático de memcached en la versión de Facebook

Reinicio automático de memcached en la versión de Facebook

Los ingenieros de Facebook han liberado una modificación de memcached adaptada a sus necesidades.

A la espera que se incluya en la versión oficial de memcached la han publicado en el github. Revisando el contenido me he encontrado con este script que reinicia en caso de fallo el memcached (si el proceso muere).

Se trata de la misma idea que se usa con las daemontools: En el caso que el proceso memcached muera se reinicia de forma automática, evitando que un técnico tenga que realizar la tarea manualmente reduciendo así al máximo el tiempo de caida. El loop principal es:

#
# Now run memcached, restarting it if it fails.
#
while true; do
  syslog -s -l info "Starting memcached"
  $MEMCACHED $ARGS
done

Mediante daemontools se reduce el desarrollo de este tipo de script indicando sólo cómo levantar el daemon. Para el caso de memcached sería tan simple como:

#!/bin/bash
exec /usr/local/bin/memcached -u memcached -l 127.0.0.1 -c 1024 -m 128

Además, en el caso de la versión de Facebook, si se muere el script que inicia memcached no se volverá a levantar solo, ya que nadie monitoriza el script de inicio de memcached. Para el caso de las daemontools se muera el script que se muera siempre se volverá a levantar, ya que usa el init como gestor de inicio de las daemontools. Podemos verlo en el /etc/inittab:

SV:123456:respawn:/command/svscanboot

Existen otros proyectos similares a las daemontools, como pueden ser mon o Monit.

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>