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.
Relacionados
Imprimir
Deja un comentario: