Mise en place et exploitation de Memcached

Afin de réduire au maximum les appels à la base de données, ainsi que les traitements résultant de l'exploitation des requêtes, les CMS, Wikis, forums et autre blogs utilisent au maximum des systèmes de cache. Le plus souvent les fichiers sont stockés directement sur le système de fichier, mais il existe des alternatives de stockage telles que les système de mémoire cache distribuée dont Memcached en est un excellent représentant.

Bien que pour le moment je ne possède qu'un seul serveur pour Scenario-Paintball et que je n'ai pas besoin de distribuer mon cache ou mes sessions, l'utilisation d'un stockage en RAM apporte un gain de performance par rapport à un stockage sur disque dont les accès (I/O) sont généralement plus lents.

Pourquoi Memcached en plus d'APC

Certaines applications comme IPB proposent de stocker leur cache applicatif au sein d'APC.

En mon sens (mais peut-être suis je un puriste) APC est un cache d'opcode et non un cache applicatif. De plus, il n'est pas distribué et dans le cas d'une application répartie sur plusieurs serveurs, on pourrait rencontrer des versions de cache différentes.

Pour du cache applicatif, je pense qu'il vaut mieux utiliser un cache distribué et donc (par exemple) Memcached.

Installation de Memcached et des extensions pour php et Python

Pour installer Memcached et les extensions pour Python et php, rien de plus simple  : Just Yum It !

yum install memcached.x86_64 python-memcached.noarch php-pecl-memcached.x86_64 perl-Cache-Memcached.noarch

Monitorer Memcached

Pour monitorer Memcached, j'ai trouvé sur la toile un memcahce.php dans le même style que l'APC.php permettant de monitorer APC.

memcached.png

J'ai également mis en place un template pour Cacti, également trouvé sur le web, pour monitorer Memcached au sein de mon instance Cacti.

Configuration des différentes applications en place sur mon serveur

;;;;;;;;;;;;;;;
; Memcached ;
;;;;;;;;;;;;;;;
; Use memcache as a session handler
session.save_handler=memcached
; Defines a comma separated list of server urls to use for session storage
session.save_path="localhost:11211"

2 réactions

  • De NiniGeek De NiniGeek - 20/07/2011, 15:22 #1

    J'utilise plutôt phpMemcachedAdmin pour monitorer memcached

    Sinon j'utilise memcached avec Yii et ça marche bien !

  • De llaumgui De llaumgui - 20/07/2011, 20:07 #2

    @NiniGeek > Merci, je viens de tester phpMemcachedAdmin et c'est tout bonnement ce que je cherchais !

Attribution - Partage dans les Mêmes Conditions 4.0 International