Fichiers, APC ou Memcache ?
Tout d'abord, la première question que l'on peut se poser, c'est à quoi sert le cache ?
Le cache est destiné à servir des pages sans avoir besoin de les recalculer. Cette approche permet donc de beaucoup moins solliciter les serveurs car c'est bien sur le calcul des pages que les serveurs souffrent le plus.
En mettant donc en place un cache de 1 heure sur une page qui est visionnée 1000 fois par jour, vous allez donc permettre au serveur de calculer que 24 fois page au lieu de 1000 fois !! D'autant plus que la génération d'une page Web peut exécuter plus de 100 requêtes en base de données.
C'est là que l'on se rend compte pour des sites à fort trafic de l'importance de la mise en place d'un système de cache.
D'où l'importance de bien choisir la solution de cache.
- Cache par fichiers
Cette solution est la plus fréquente et très souvent celle proposée par défaut avec les CMS du marché.
Le principal avantage de cette méthode est qu'il n'est pas nécessaire paramétrer le serveur pour qu'elle puisse être mise en place. C'est donc la solution idéale si le site est sur un hébergement mutualisé. Maintenant, cette solution a également un gros inconvenants, lorsqu'elle est utilisée sur des sites avec un trafic assez fort, le serveur peut avoir des difficultés à faire les accès disque et par conséquent considérablement ralentir le chargement des pages. De plus, cette technique qui sollicite énormément les disques durs peut les endommager à l'usage.
Cette méthode de cache est donc, d'après nous, adaptée pour améliorer les performances de site assez petits sans payer un hébergement trop cher mais n'est plus adaptée à partir du moment où le site commence à avoir un trafic trop élevé. Maintenant, nous n'avons pas effectué de tests avec ce système sur des serveurs avec disques SSD. - Cache APC
APC est un moteur de cache en mémoire RAM, il est installé sous forme d'extension PHP à installer sur le serveur. Il est automatiquement instancié avec chaque processus PHP.
APC est une solution très performante de mise en cache qui permet de charger une page en quelques millièmes de secondes. Il permet également de mettre en mémoire les scripts du site (c'est ce que l'on appel du cache OPcode) ce qui permet aux processus PHP de se charger plus rapidement et d'utiliser moins de mémoire RAM.
Coté défauts, APC a ses limites. Suite à nos tests, nous nous sommes rendu compte qu’il ne savait pas gérer plus de 512 Mo de cache, ce qui est énorme me direz-vous, sauf quand il s’agit d’un site avec beaucoup de contenu. De plus, APC étant lié aux instances PHP ne peut être utilisé sur un Cluster de serveurs. En effet, le cache risquerait d’être différent d’un serveur à l’autre et de provoquer des incohérences.
Toujours d’après notre opinion, APC est donc une solution adaptée pour des sites qui commencent à générer pas mal de trafic mais qui n’ont pas un contenu de plusieurs milliers d’articles et qui restent sur un seul serveur. - Cache Memcache
Memcache est également un moteur de cache en mémoire RAM, il est cependant un peu plus compliqué à installer car il nécessite l’installation sur le serveur d’un application « Memcached » que l’on doit ensuite démarrer par port à écouter. Il nécessite également que l’on installe une extension PHP du même nom.
Memcache une fois installé et paramétré est certainement le plus puissant des moteurs de cache comparés ici. En effet, grâce à son architecture « en chaine », il permet de répartir le cache sur plusieurs serveurs. Cette architecture le rend donc parfait pour des configurations en Cluster car l’on utilise le même serveur de cache pour tous les serveurs du site. De plus Memcache peut être utilisé avec MySQL pour mettre en cache les requêtes et améliorer les performances du serveur SQL. Nous avons déployé des sites Internet avec Memcache qui utilisaient jusqu’à 5 Go de cache sans que cela ne pose de soucis, c’est donc pour nous une solution très robuste.
Une des fonctionnalités qui manque à Memcache, c’est le cache OPcode. Nous recommandons donc de déployer APC sur chaque serveur en plus pour gérer l’OPcode.
Vous l’aurez donc compris, pour nous Memcache est le moteur de mise en cache le plus performant. Il est cependant beaucoup plus compliqué à déployer que les autres solutions présentées. C’est pourquoi nous recommandons cette solution seulement pour les sites qui le nécessite.
Commentaires
Marc (non vérifié)
22 Mai 2012
Permalien
Taille du cache
Xavier
05 Juin 2012
Permalien
Réponse taille du cache
druidux (non vérifié)
07 Août 2013
Permalien
tuto pour l'installer memcache et apc
Johne631 (non vérifié)
29 Avril 2014
Permalien
Hi, Neat post. There's a
sparrow (non vérifié)
28 Septembre 2015
Permalien
Les articles intemporels
Ajouter un commentaire