16 votes

Configuration de base de Memcache

J'ai installé memcache pour un site Drupal avec l'extension pecl memcached. Tout fonctionne bien mais j'ai encore du mal avec les paramètres de configuration.

Par exemple, suivant les conseils sur drupal.org

Vous devriez probablement sécuriser le serveur memcache pour qu'il n'écoute que 
les connexions des hôtes qui ont besoin d'être servis, car par défaut 
memcache écoute les connexions de toutes les adresses. 
Donc, pour colmater cette faille, éditez /etc/sysconfig/memcached avec :

OPTIONS="-l ${HOSTIP}"

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

Étant donné que /etc/sysconfig/memcached ou /etc/memcached.conf n'existent pas sur mon serveur, puis-je les créer en toute sécurité ? Est-il possible que ces fichiers soient situés ailleurs, auquel cas où devrais-je chercher ou y a-t-il un moyen de trouver ces informations ?

Enfin, toute ressource, tutoriel ou lien vers la documentation serait grandement apprécié. J'ai parcouru le Wiki du site memcache, et je n'ai pu trouver que quelques articles pertinents pour les débutants.

19voto

Khaled Points 35208

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

En général, vous obtiendrez un fichier de configuration exemple dans /etc/ lorsque vous installez memcached en utilisant apt-get sous des systèmes basés sur debian et rpm ou yum sous redhat, fedora ou centos.

Si vous l'avez installé depuis les sources, vous pourriez ne pas obtenir de fichier exemple dans /etc/ (je n'ai pas installé memcached depuis les sources moi-même). Cependant, vous pouvez chercher un fichier de configuration exemple dans le dossier source décompressé.

Quoi qu'il en soit, vous pouvez utiliser locate memcached.conf pour en trouver un dans votre système. Vous devez exécuter sudo updatedb avant pour mettre à jour le cache de recherche.

Voici le fichier de configuration de mon système. Vous pouvez l'utiliser :

# Faire fonctionner memcached en tant que service. Cette commande est implicite, et n'est pas nécessaire pour
# lancer le service. Consultez le README.Debian fourni avec ce paquet pour plus
# d'informations.
-d

# Enregistrer la sortie de memcached dans /var/log/memcached
logfile /var/log/memcached.log

# Être verbeux
# -v

# Être encore plus verbeux (afficher les commandes du client)
# -vv

# Commencer avec un maximum de 64 méga-octets de mémoire. C'est raisonnable, et la taille par défaut du service
# Notez que le service va croître jusqu'à cette taille, mais ne commence pas en tenant autant
# de mémoire
-m 64

# Le port de connexion par défaut est 11211
-p 11211
# Faire fonctionner le service en tant que root. Le script start-memcached se lancera en tant que root par défaut si aucun
# commande -u n'est présente dans ce fichier de configuration
-u memcache

# Spécifier quelle adresse IP écouter. Par défaut, il écoute sur toutes les adresses IP
# Ce paramètre est l'une des rares mesures de sécurité que possède memcached, assurez-vous
# qu'il écoute sur une interface protégée par pare-feu.
-l 127.0.0.1

# Limiter le nombre de connexions simultanées. La taille par défaut est 1024
# -c 1024

# Verrouiller toute la mémoire paginée. Consultez le README et la page d'accueil avant de faire cela
# -k

# Renvoyer une erreur en cas d'épuisement de la mémoire (plutôt que de supprimer des éléments)
-M

# Augmenter la limite de fichiers core
# -r

Vous pouvez également passer les mêmes options en ligne de commande.

13voto

cyberx86 Points 20450

Le fichier 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 revient à, si le fichier existe, le 'sourcer' (c'est-à-dire lire et évaluer son contenu).

Autant que je sache, memcached n'a pas de fichier de configuration. Il utilise des paramètres en 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).

En fin de compte, donc:

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

4voto

onalbi Points 139

Si vous ne parvenez pas à trouver sur CentOS /etc/init.d/memcached, essayez ceci :

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

et changez :

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 ajoutez dans /etc/sysconfig/memcached

MAXITEMSIZE="128m"

Redémarrez memcached

service memcached restart

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

ps aux | grep memcached

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X