Configuration de base de Memcache

14

J'ai installé memcache pour un site Drupal avec l'extension pecl memcached. Tout fonctionne bien, mais je continue de me battre avec les paramètres de configuration.

Par exemple, en suivant les conseils sur 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}"

Le problème est que je n'ai pas ce fichier sur mon serveur, en tout cas pas à cet endroit. Certains autres articles ont mentionné /etc/memcached.conf mais je ne trouve pas non plus ce fichier.

Étant donné que / etc / sysconfig / memcached ou /etc/memcached.conf ne se ferme pas sur mon serveur, puis-je les créer en toute sécurité? Est-il possible que ces fichiers soient situés ailleurs, dans ce cas, où dois-je chercher ou existe-t-il un moyen de trouver ces informations?

Enfin, toutes les ressources, tutoriels ou liens de documentation seraient grandement appréciés. J'ai parcouru le site Wiki de memcache et je n'ai trouvé que quelques articles pertinents pour les débutants.

PatrickS
la source
1
Les instructions drupal sont incorrectes. L' -loption détermine les interfaces que memcached écoutera, et non les hôtes qui seront servis.
Wayne Conrad

Réponses:

17

Vous ne nous avez pas parlé de votre OS / distribution. De plus, vous ne nous avez pas expliqué comment vous avez installé memcached.

Habituellement, vous obtiendrez un exemple de fichier de configuration sous /etc/lorsque vous installez memcached en utilisant des apt-getsystèmes basés sur Debian et rpmou yumsous redhat, fedora ou centos.

Si vous l'avez installé à partir de la source, vous ne pouvez pas obtenir un exemple de fichier sous /etc/(je n'ai pas installé memcached à partir de la source moi-même). Cependant, vous pouvez rechercher un exemple de fichier de configuration dans le dossier source décompressé.

Quoi qu'il en soit, vous pouvez utiliser locate memcached.confpour en rechercher un dans votre système. Vous devez faire sudo updatedbavant cela pour mettre à jour le cache de recherche.

Voici le fichier de configuration de mon système. Tu peux l'utiliser:

# 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

Vous pouvez également transmettre les mêmes options à partir de la ligne de commande.

Khaled
la source
Debian GNU / Linux 5.0.9 (lenny) / memcached 1.4.10. J'ai parcouru tellement d'étapes pour installer memcache que je ne me souviens pas avec certitude de la façon dont je l'ai fait. Il peut avoir été compilé à partir de la source car ces fichiers de configuration sont manquants. Je sais que les extensions pecl ont été installées à partir de la source, tout simplement parce que l'utilisation de pecl n'a pas fonctionné. En regardant le dossier source, je ne pouvais pas dire quel serait l'exemple de fichier de configuration ...
PatrickS
@PatrickS: J'ai mis à jour ma réponse.
Khaled
J'ai fini par créer /etc/init.d/memcached en utilisant les options de ligne de commande ci-dessus pour configurer memcache
PatrickS
11

La valeur par défaut (CentOS) / etc / sysconfig / memcached:

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

Le script d'initialisation (CentOS) /etc/init.d/memcached:

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

Ce qui précède équivaut, si le fichier existe, à le «source» (c'est-à-dire lire et évaluer son contenu).

Pour autant que je sache, memcached n'a pas de fichier de configuration. Il utilise des paramètres de ligne de commande , par exemple (à partir d'un script d'initialisation RHEL / CentOS):

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

(Vous remarquerez que les variables définies ci-dessus sont utilisées ici).

Le résultat final est donc le suivant:

  • Vérifiez votre script d'initialisation - s'il contient une section similaire à celle ci-dessus (l'instruction if), alors certainement, créez le fichier correspondant et placez-y les variables appropriées.
  • Il n'y a pas de fichier de configuration - n'en créez pas car il ne sera pas utilisé.
cyberx86
la source
3

Si vous ne trouvez pas sur CentOS /etc/init.d/memcached essayez ceci:

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

et changer:

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

à:

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

Après l'ajout dans / etc / sysconfig / memcached

MAXITEMSIZE="128m"

Redémarrez memcached

service memcached restart

Pour vérifier si un paramètre est ajouté, essayez:

ps aux | grep memcached
onalbi
la source