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 memcache.php dans le même style que l’APC.php permettant de monitorer APC.
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
- Indefero est compatible avec Memcached et il existe une documentation pour ça.
- MediaWiki est compatible avec Memcached et il existe une documentation pour ça.
- Invision Power Bord est compatible, entre autres, avec Memcached et il existe une documentation pour ça.
- Il existe un plugin pour permettre à Dotclear d’utiliser Memcached.
- Pour ce qui est des sessions, j’ai appliqué la configuration suivante :
;;;;;;;;;;;;;;;
; 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"
De NiniGeek le 20 juillet 2011
J'utilise plutôt phpMemcachedAdmin pour monitorer memcached
Sinon j'utilise memcached avec Yii et ça marche bien !