Como configuro várias instâncias do memcached sendo executadas em portas diferentes?

3

Estou executando o Ubuntu 15.10 e já tenho o memcached instalado no meu sistema. Meu requisito atual do projeto é executar duas instâncias do memcached no mesmo servidor, mas com portas diferentes. Eu começo com o arquivo /etc/memcached.conf e verifico que ele tem a opção de especificar o número da porta. Então, eu pensei que eu só precisava ter dois arquivos conf idênticos com números de porta diferentes.

Então eu verifico o script de inicialização do memcached /etc/init.d/memcached para que eu possa especificar a localização dos arquivos conf. Mas, para minha surpresa, vejo que o script de inicialização já tem uma opção para executar várias instâncias do memcached.

# Usage:
# cp /etc/memcached.conf /etc/memcached_server1.conf
# cp /etc/memcached.conf /etc/memcached_server2.conf
# start all instances:
# /etc/init.d/memcached start
# start one instance:
# /etc/init.d/memcached start server1
# stop all instances:
# /etc/init.d/memcached stop
# stop one instance:
# /etc/init.d/memcached stop server1
# There is no "status" command.

FILES=(/etc/memcached_*.conf)
# check for alternative config schema
if [ -r "${FILES[0]}" ]; then

Eu tentei a opção acima, mas ela ainda continua iniciando uma única instância, em vez de iniciar duas instâncias. Estou faltando alguma coisa aqui?

    
por Tojo Chacko 11.05.2016 / 14:25

4 respostas

6

Como Robert Bihlmeyer disse no link , uma solução simples é remover /lib/systemd/system/memcached.service .

Sem esse arquivo, o systemd retorna a /etc/init.d/memcached , que suporta várias configurações.

Eu confirmei esse problema no Ubuntu 16.04 e resolvi dessa maneira.

    
por Tsutomu 10.09.2016 / 03:16
2

Isso pode ser feito facilmente criando um arquivo /lib/systemd/system/[email protected] com basicamente o mesmo conteúdo que o arquivo memcached.service com algumas pequenas alterações:

[Unit]
Description=memcached daemon for %i
After=network.target

[Service]
ExecStart=/usr/share/memcached/scripts/systemd-memcached-wrapper /etc/memcached_%i.conf

[Install]
WantedBy=multi-user.target

Você pode usar o systemctl para gerenciar cada serviço individualmente:

systemctl enable memcached@server1

systemctl start memcached@server2
    
por djGrrr 09.03.2017 / 19:38
1

Tendo o mesmo problema no Debian Jessie. Relatará se encontrar uma solução.

Nesse meio tempo, você pode iniciar manualmente os serviços para alcançar o resultado desejado.

Exemplo:

sudo /etc/init.d/memcached stop
memcached -d -m 64 -l 127.0.0.1 -p 11211 -u memcache
memcached -d -m 64 -l 127.0.0.2 -p 11211 -u memcache

Atualização 1 : Aha! Há um bug no Debian: link . Isso também poderia afetar o Ubuntu?

    
por gArn 21.07.2016 / 14:33
0

Execute o comando follow para configurar várias instâncias do Memcached no servidor do ubuntu 16.04

sudo cp /etc/memcached.conf /etc/memcached_11212.conf

sudo vim /etc/memcached_11212.conf

Note: change the port from 11211 to 11212 or another port which you want.

sudo cp /lib/systemd/system/memcached.service /lib/systemd/system/memcached2.service

sudo vim /lib/systemd/system/memcached2.service

Note: change /etc/memcached.conf to /etc/memcached_11212.conf

sudo systemctl start memcached2.service

sudo systemctl status memcached2.service

sudo netstat -tulpan | grep memcached

    
por Abdul Kadir 05.02.2018 / 13:37

Tags