Por que o Memcache não está sendo iniciado automaticamente?

1

Eu instalei o memcache no meu servidor CentOS, e as respectivas bibliotecas para o php também:

Apesar de ter instalado os dois, acabei usando o Memcache

$memcache = new Memcache;

Como queria que o serviço memcache fosse executado automaticamente após a reinicialização do servidor, fiz isso:

memcached -d -u nobody -m 512 -p 11211 127.0.0.1
chkconfig memcached on

Então eu verifiquei:

chkconfig --list | grep memcache
> memcached 0:off   1:off   2:on    3:on    4:on    5:on    6:off

Após alguns minutos de uso:

echo stats | nc 127.0.0.1 11211

STAT pid 30412
STAT uptime 1616
STAT time 1424280050
STAT version 1.4.15
STAT libevent 1.4.13-stable
STAT pointer_size 64
STAT rusage_user 0.053991
STAT rusage_system 0.152976
STAT curr_connections 42
STAT total_connections 144
STAT connection_structures 43
STAT reserved_fds 20
STAT cmd_get 639
STAT cmd_set 360
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 262
STAT get_misses 377
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 147954
STAT bytes_written 455620
STAT limit_maxbytes 536870912
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT bytes 138385
STAT curr_items 359
STAT total_items 360
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT evictions 0
STAT reclaimed 1
END

Tudo correu bem por algumas semanas. Depois disso, decidi verificar o status do serviço e, por algum motivo, o memcache não estava funcionando. Eu tive que colocá-lo de volta (eu reiniciei o servidor em algum momento nessas semanas):

memcached -d -u nobody -m 512 -p 11211 127.0.0.1

Por que o memcache não começou automaticamente após a reinicialização? Não é para isso que chkconfig memcached on é? Por que ele poderia ter parado de funcionar?

    
por Carlos Santos 18.02.2015 / 18:25

2 respostas

1

Você deve verificar o que acontece (registros, etc) ao tentar executar

service memcached start

depois de parar a instância iniciada manualmente. Se isso não ajudar, verifique o boot.log e, da próxima vez que você iniciar o sistema, verifique os registros o mais cedo possível.

> memcached 0:off 1:off 2:off 3:off 4:off 5:off 6:off

O Memcached não está configurado para iniciar automaticamente, está definido como desativado para todos os níveis de execução.

Você deve tentar configurá-lo novamente.

    
por 18.02.2015 / 18:30
0

Por que o Memcache não está sendo iniciado automaticamente?

Não tenho a resposta exata de 'why', mas tenho uma solução para esse problema, conforme listado e descrito abaixo

Passo 1) Crie um arquivo executável chamado

/usr/local/bin/memcached

e coloque o conteúdo abaixo nesse arquivo;

#!/bin/sh

echo Checking for memcached instance...
result=$(pidof memcached)
echo "$result"
if [ -z "$result" ]; then
  echo memcached is not running. Attempt to start it...
  /usr/bin/memcached -u memcached -p 11211 -m 1024 -c 1024 -l localhost -d &
else
  echo memcached is already running. Do nothing.
fi

echo End of script.

Passo 2) Coloque esse script em / etc / crontab

* * * * root /usr/local/bin/memcached

Foi tudo o que fiz. Esse script será executado a cada minuto e verificará qualquer instância do memcached em execução.

Espero que isso ajude.

    
por 26.05.2017 / 17:39