Utiliser un cache en ram pour WordPress
le 11 décembre 2008 à 15:52 par mrbooJe sais, c’est du bien barbu comme sujet, mais bon on ne se refait pas et je trouve le bousin efficace donc je vous livre l’info cela peut en intéresser certain(e)s
Si vous voulez héberger un blog WordPress avec votre propre serveur et sans que cela vous coûte un bras, vous avez surement jeté un oeil aux offres de type RPS (real private server)
Il s’agit de petits serveurs économiques ayant pour principal point faible l’absence de disque dur intégré: Ils partagent un disque réseau avec les autres serveurs du même type.
Dès qu’il y a un peu de monde sur un blog il est recommandé de mettre en œuvre un système de cache (super cache par ex)
Malheureusement le gain habituel du cache est (quasi) perdu par le temps d’accès au disque réseau du serveur RPS.
Voici comment on peut contourner le problème et s’offrir un blog qui dépote bien pour ~10€ par mois:
Une fois le blog installé et fonctionnel,
- installez un serveur memcached sur le serveur RPS:
« apt-get install memcached » (commande Debian)
- placez ces deux fichiers dans le répertoire wp-content de votre blog.
- démarrez le serveur memcached (si cela n’est pas déjà le cas) :
« /etc/init.d/memcached start »
Et voilà !
Désormais le cache de votre blog se trouve en mémoire vive (RAM) et ne demande plus d’accès au très lent disque réseau de votre serveur RPS.
2 tips :
- Memcached demande de temps en temps un redémarrage « /etc/init.d/memcached restart » (cela videra le contenu du cache)
- Lors d’une mise à jour de WordPress faites gaffe à ne pas écraser les 2 fichiers de cette méthode + redémarrez memcache car la version de WP y est stockée: du coup WP est persuadé que la maj n’est pas effective.
PS: Je viens d’effectuer la mise à jour vers WordPress 2.7 et cela semble parfaitement fonctionner.









11 décembre 2008 à 18:40
Pfiouuuu….
11 décembre 2008 à 19:19
Hmmmh … mais combien de mémoire ça mange et surtout .. jusque quel trafic ça tient ?
Par exemple sur un site avec 7000 visites jour, est-ce ça va pas commencer à faire mal ? ^^
11 décembre 2008 à 19:24
Gonzague> en fait le serveur memcached se contigure: tu lui indique quel quantité de ram tu souhaites lui allouer, lorsque cette limite arrive les plus vielles pages sortent du cache.
Pour info il me semble avoir lu que facebook utilise une ferme de 600 serveurs dédiés uniquement à memcached: ça peut tenir pas mal à mon avis
11 décembre 2008 à 19:58
Comme le tribulateur Pfioouuuu
, je vais me laisser pousser la barbe et je reviens lire le billet dans une semaine…
ça me rappelle une discussion avec un pro du web qui me disait que selon lui pour gagner sa vie sur le net il fallait absolument savoir « tout faire »… déjà que le PHP je limite juste la casse, alors les serveurs…
11 décembre 2008 à 20:42
Si je me peux me permettre et avec l’autorisation du Tribulateur : Pfiouuu, itou
11 décembre 2008 à 20:54
(si je peux me permettre) Pfiouuu aussi.
11 décembre 2008 à 21:23
Bon j’ai rien compris mais le sujet me permet de poser une question qui me taraude (carrément). Si (et je dis bien « si » parce que les trucs de barbus bon bref) je me lancais dans un blog sous WordPress (j’ai bien compris que je devais télécharger le truc, avoir un hébergeur – j’ai – etc…) est-ce qu’il est envisageable d’être à plusieurs auteurs, depuis plusieurs postes informatiques, plusieurs lieux dont des web-cafés, sur ce blog ???
!!!!
Parce que c’est bien pour cela que les « plate-formes » (gratuites ou payantes) marchent si bien : possibilité d’accéder de n’importe où, sans locigiel particulier, etc…
Je suis HS mais… même pas honte
11 décembre 2008 à 22:17
@ophise: de ce que je sens dans tes propos, je te conseille vivement d’ouvrir un blog sur http://www.wordpress.com. Ca te prend 10 secondes, accessible de partout, multi auteurs si tu veux, rien à gérer, rien à installer.
, il doit maîtriser sa plateforme, donc il l’a installée « chez lui », mais si je sens bien les choses, tu cherches un truc pratique. Tout ce dont il parle concerne les gens qui héberge leur blog sur un espace web à eux. Ca demande un peu plus de connaissances en informatique.
Pour MrBoo c’est différent, il a des besoins de grand blogueur
11 décembre 2008 à 23:04
Tu t’en doutais bien François que j’allais débarquer dans les commentaires
Pour la petite histoire, memcached à été developpé pour le site LiveJournal qui à l’époque desservait 20 millions de page dynamiques par jour … (la suite à lire sur le site officiel de memcached)
Coté charge, ça tient le coup et ça dépote ! (même si je maintiens qu’il faut coupler ça avec un cache php comme eaccelerator + mod deflate ou gzip pour un maximum de gain et de réactivité).
Au niveau de memcached, pas besoin de le redémarrer pour le vider au contraire. S’il y a une bonne gestion du cache côté soft, les données sont stockées avec une « date de validité ». Passé cette date, la donnée n’est plus valide, elle est donc à nouveau récupérée (par exemple dans la base de données) et mise en cache avec un « numéro de version » incrémenté. L’ancienne donnée n’est pas effacée, mais comme son numéro de version est plus ancien elle n’est plus utilisée. Lorsque le cache est plein, les données les plus anciennes sont écrasées au profit de nouvelles données plus fraiches. Il n’y a donc pas besoin de redémarrer le cache afin de le vider (encore une fois, en partant du principe que la partie soft à une bonne gestion du cache).
Le module memcache pour php est vraiment bien fait, et on peut créer un pool de serveurs très facilement, le module sait exactement sur quel serveur se trouve une donnée en particulier. Quand un serveur tombe, memcache s’adapte.
Pour un site à fort trafic j’avais mis en place un pool de 6 serveurs avec chacun 1GB dédié à memcached (en soutien à MySQL) et c’est que du bonheur puisque le nombre de requêtes/s à pu être baissé de plus de 80% ! (je n’exagère pas)
Gonzague > avec 7000 vu/j ça ne peut que faire du bien ! Parfois il suffit d’un petit cache de 128MB pour soulager le serveur de base de données et redonner du « peps » à tout un site.
mrboo > « Memcache::getStats » fourni une flopée d’infos sur l’utilisation du cache, c’est intéressant d’y jeter un oeil (enfin je doute que ça intéresse tout le monde, mais toi sans doute
)
Cette année encore je n’ai pas mis de rasoir sur ma liste de cadeaux de Noël … ma barbe, je la garde !
14 décembre 2008 à 19:16
tiens aussi y aurait pas un fichier à personnaliser ( je ne sais où ) quand on a plusieurs blogs qui doivent utiliser memcache ? ^^
15 décembre 2008 à 2:46
ahh et apparemment il est mieux de l’installer ainsi: http://www.lullabot.com/articles/how_install_memcache_debian_etch
je n’ai pas encore essayé ^^
15 décembre 2008 à 6:49
Vu la différence de complexité entre la version en 3 lignes de commande et la version « je m’amuse à compiler le serveur memcached + je fais joujou avec Pecl » il faudra vraiment que le gain soit significatif pour choisir cette voie.
Mais clairement la méthode que tu indique est plus pro, ne serai-ce que le fait d’utiliser une extension Pecl c’est toujours beaucoup plus performant que de passer par du script.
Merci pour le lien.
15 décembre 2008 à 18:39
oh et je me suis aussi installé un petit truc : une page qui fait dashboard pour memcached , qui fait un état des lieux du ou des serveurs memcached en route
15 décembre 2008 à 19:48
Gonzague> fais gaffe ça fini par créer une dépendance
15 décembre 2008 à 22:53
Merci Jrome : vais faire ce que tu dis de ce pas !!! (j’avais compris que c’était compliqué mais si WordPress est « une plate-forme » comme les autres… ça ira à ma blonditude kinder
)