Configuração básica do Memcache

13

Eu instalei o memcache para um site do Drupal com a extensão pecc memcached. Está tudo funcionando bem, mas ainda estou lutando com as configurações.

Por exemplo, seguindo os conselhos sobre drupal.org

You should probably lock down the memcache server so that it only listens for 
connections from the hosts that need to be served, as the default is that 
memcache listens to connections from all addresses. 
So, to close that hole, edit /etc/sysconfig/memcached with:

OPTIONS="-l ${HOSTIP}"

O problema é que eu não tenho esse arquivo no meu servidor, em qualquer caso, não neste local. Alguns outros artigos mencionaram o /etc/memcached.conf, mas também não consigo encontrar este arquivo.

Considerando que o / etc / sysconfig / memcached ou /etc/memcached.conf não sai no meu servidor, posso criá-los com segurança? É possível que esses arquivos estejam em algum outro lugar? Nesse caso, onde devo procurar ou há alguma maneira de encontrar essas informações?

Finalmente, quaisquer recursos, tutoriais ou links de documentação seriam muito apreciados. Eu naveguei pelo Wiki do memcache, e só encontrei alguns artigos relevantes para iniciantes.

    
por PatrickS 07.01.2012 / 11:17

3 respostas

15

Você não nos informou sobre seu OS / distro. Além disso, você não nos contou como instalou o memcached.

Normalmente, você obterá um arquivo de configuração de exemplo em /etc/ quando instalar o memcached usando apt-get em sistemas baseados em debian e rpm ou yum em redhat, fedora ou centos.

Se você instalá-lo a partir do código-fonte, talvez não obtenha um arquivo de amostra em /etc/ (eu mesmo não instalei o memcached da origem). No entanto, você pode procurar por um arquivo de configuração de amostra na pasta de origem descompactada.

De qualquer forma, você pode usar locate memcached.conf para procurar um no seu sistema. Você precisa fazer sudo updatedb antes disso para atualizar o cache de pesquisa.

Aqui está o arquivo de configuração do meu sistema. Você pode usá-lo:

# Run memcached as a daemon. This command is implied, and is not needed for the
# daemon to run. See the README.Debian that comes with this package for more
# information.
-d

# Log memcached's output to /var/log/memcached
logfile /var/log/memcached.log

# Be verbose
# -v

# Be even more verbose (print client commands as well)
# -vv

# Start with a cap of 64 megs of memory. It's reasonable, and the daemon default
# Note that the daemon will grow to this size, but does not start out holding this much
# memory
-m 64

# Default connection port is 11211
-p 11211
# Run the daemon as root. The start-memcached will default to running as root if no
# -u command is present in this config file
-u memcache

# Specify which IP address to listen on. The default is to listen on all IP addresses
# This parameter is one of the only security measures that memcached has, so make sure
# it's listening on a firewalled interface.
-l 127.0.0.1

# Limit the number of simultaneous incoming connections. The daemon default is 1024
# -c 1024

# Lock down all paged memory. Consult with the README and homepage before you do this
# -k

# Return error when memory is exhausted (rather than removing items)
-M

# Maximize core file limit
# -r

Você também pode passar as mesmas opções da linha de comando.

    
por 07.01.2012 / 11:27
10

O padrão (CentOS) / etc / sysconfig / memcached:

PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""

O script de inicialização (CentOS) /etc/init.d/memcached:

...
if [ -f /etc/sysconfig/memcached ];then
        . /etc/sysconfig/memcached
fi
...

Os valores acima se referem a, se o arquivo existir, 'source' (isto é, leia e avalie seu conteúdo).

Tanto quanto sei, o memcached não possui um arquivo de configuração. Ele usa os parâmetros linha de comando , por exemplo (de um script de inicialização do RHEL / CentOS):

daemon --pidfile ${pidfile} memcached -d -p $PORT -u $USER  -m $CACHESIZE -c $MAXCONN -P ${pidfile} $OPTIONS

(Você notará que as variáveis definidas acima são usadas aqui).

A linha de fundo, portanto, é:

  • Verifique seu script de inicialização - se ele contiver uma seção semelhante à acima (a instrução if), crie o arquivo correspondente e coloque as variáveis apropriadas nele.
  • Não há arquivo de configuração - não crie um, pois ele não será usado.
por 07.01.2012 / 11:52
3

Se você não consegue encontrar no CentOS /etc/init.d/memcached, tente isto:

nano /usr/lib/systemd/system/memcached.service

e altere:

ExecStart=/usr/bin/memcached -u $USER -p $PORT -m $CACHESIZE -c $MAXCONN $OPTIONS

para:

ExecStart=/usr/bin/memcached -u $USER -p $PORT -m $CACHESIZE -I $MAXITEMSIZE -c $MAXCONN $OPTIONS

Após adicionar / etc / sysconfig / memcached

MAXITEMSIZE="128m"

Reinicie o memcached

service memcached restart

Para verificar se o parâmetro é adicionado, tente:

ps aux | grep memcached
    
por 09.10.2015 / 10:32