Iniciando mais de uma instância de memcached no mesmo servidor

Publicado por Filippe em 09/08/2013

[ Hits: 4.246 ]

 


Iniciando mais de uma instância de memcached no mesmo servidor



No dias de hoje, com a otimização de recursos e redução de gastos que a área de TI exige, sempre pensamos em como reduzir ao máximo, recursos físicos de Hardware e aproveitar ao máximo, sem gastos excessivos.

O memcached é um sistema distribuído de objetos em memória de alta performance, e o melhor de tudo, Open Source, que nos permite ter uma performance muito maior que o normal em uma aplicação, seja ela WEB ou não.

O memcached não exige muitos recursos de um servidor, mas, olhando por outro lado, dependendo da carga que este servidor de memcached irá ter, podem sobrar recursos de CPU, memória, etc, e o servidor fica ocioso a maior parte do tempo, isto, de certa forma, é um desperdício.

Para evitar coisas como essa, existe uma forma bem fácil de executar mais de uma instância de memcached no mesmo servidor, compartilhando os mesmos recursos através da criação de dois ou mais processos independentes, que não interferem em nada o funcionamento um do outro.

Procedimentos

Ambiente: Red Hat 6.4 64 bits.

Primeiramente, instale o memcached:

sudo yum install -y memcached

Após a instalação do memcached, basta substituir o script de inicialização do daemon, em "/etc/init.d/memcached", pelo script abaixo:

#!/bin/bash
# Init file for memcached
# Written by Dag Wieërs <[email protected]>
# chkconfig: - 80 12
# description: Distributed memory caching daemon
# processname: memcached
# config: /etc/sysconfig/memcached
# config: /etc/memcached.conf


source /etc/rc.d/init.d/functions

### Default variables
PORT1="11211"
PORT2="11212"
USER="memcached"
MAXCONN="1024"
CACHESIZE="512"
OPTIONS=""
SYSCONFIG="/etc/sysconfig/memcached"

### Read configuration
[ -r "$SYSCONFIG" ] && source "$SYSCONFIG"

RETVAL=0
prog="memcached"
desc="Distributed memory caching"

start() {
echo -n $"Starting $desc ($prog): "
daemon $prog -d -p $PORT1 -u $USER -c $MAXCONN -m $CACHESIZE -P /var/run/memcached/memcached1.pid $OPTIONS
daemon $prog -d -p $PORT2 -u $USER -c $MAXCONN -m $CACHESIZE -P /var/run/memcached/memcached2.pid $OPTIONS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
return $RETVAL
}

stop() {
echo -n $"Shutting down $desc ($prog): "
killproc $prog
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
return $RETVAL
}

restart() {
stop
start
}

reload() {
echo -n $"Reloading $desc ($prog): "
killproc $prog -HUP
RETVAL=$?
echo
return $RETVAL
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
condrestart)
[ -e /var/lock/subsys/$prog ] && restart
RETVAL=$?
;;
reload)
reload
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
RETVAL=1
esac

exit $RETVAL

Para configurá-lo da maneira que desejar, basta alterar o arquivo de configuração ou estas variáveis no script:

PORT1="11211"
PORT2="11212"
USER="memcached"
MAXCONN="1024"
CACHESIZE="512"
OPTIONS=""

Abraços e até a próxima. :)

Outras dicas deste autor

Cuidado com o "sl"

VirtualBox Fedora 18/19: "WARNING: The vboxdrv kernel module is not loaded" [Resolvido]

Iniciando JBoss sem privilégios - Erro: "java.net.SocketException: Permission denied" [Resolvido]

Recuperando senhas de datasources encriptados em JBoss

Classe em Java para validar regex no padrão: dd/mm/aaaa hh:mm:ss

Leitura recomendada

Mantendo sua data e hora sempre corretas

Linux não dá boot!

Como instalar o Google Talkplugin no Arch Linux

Problemas com Bluetooth no Ubuntu 19.04 - a2dp-sink profile connect failed... [Resolvido]

Fedora 21 - Recuperando o GRUB2 manualmente

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts