Configuração básica do Memcache

14

Instalei o memcache para um site Drupal com a extensão pecl em cache do memcached. Está tudo funcionando bem, mas ainda estou lutando com as definições de configuração.

Por exemplo, seguindo os conselhos em 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 /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 situados em 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 site do memcache e só consegui encontrar alguns artigos relevantes para iniciantes.

PatrickS
fonte
1
As instruções do drupal estão incorretas. A -lopção regula quais interfaces o memcached escutará, não quais hosts serão atendidos.
Wayne Conrad

Respostas:

17

Você não nos contou sobre seu sistema operacional / distribuição. Além disso, você não nos disse como instalou o memcached.

Normalmente, você vai ter um arquivo de configuração de amostra sob /etc/quando você instala memcached usando apt-getsob sistemas baseados em Debian e rpmou yumsob Red Hat, o Fedora ou CentOS.

Se você o instalou a partir da fonte, talvez não seja possível obter um arquivo de amostra /etc/(eu não instalei o memcached da fonte). No entanto, você pode procurar um arquivo de configuração de amostra na pasta de origem descompactada.

De qualquer forma, você pode locate memcached.confprocurar um no seu sistema. Você precisa fazer sudo updatedbisso antes para atualizar o cache de pesquisa.

Aqui está o arquivo de configuração do meu sistema. Você pode usar isso:

# 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 na linha de comando.

Khaled
fonte
Debian GNU / Linux 5.0.9 (lenny) / memcached 1.4.10. Pode ter sido compilado a partir da fonte, pois esses arquivos de configuração estão ausentes. Eu sei com certeza que as extensões pecl foram instaladas a partir da fonte, simplesmente porque o uso do pecl não funcionou. Olhando para a pasta de origem, eu não poderia dizer qual seria o arquivo de configuração de amostra ...
Patricks
@PatrickS: Eu atualizei minha resposta.
Khaled
Já acabou criando /etc/init.d/memcached usando as opções de linha de comando acima para configurar memcache
Patricks
11

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

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

O script init (CentOS) /etc/init.d/memcached:

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

O acima mencionado equivale a, se o arquivo existir, 'fonte' (ou seja, leia e avalie seu conteúdo).

Até onde eu sei, o memcached não possui um arquivo de configuração. Ele usa parâmetros de 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 inferior, portanto, é:

  • Verifique seu script init - se ele contiver uma seção semelhante à acima (a instrução if), certamente 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.
cyberx86
fonte
3

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

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

e mude:

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

Depois de adicionar / etc / sysconfig / memcached

MAXITEMSIZE="128m"

Reiniciar o memcached

service memcached restart

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

ps aux | grep memcached
onalbi
fonte