web-dev-qa-db-fra.com

Performances Wordpress - W3 Total Cache et memcached/APCu

J'ai fraîchement installé Wordpress, Nginx avec PHP-FPM, W3 Total Cache (plugin), memcached et APCu sur PHP 5.5.

Je vais exécuter un test de performance sur mon Mac local contre le serveur AWS susmentionné à l'aide d'Apache Bench (ab). Je reçois un nombre cohérent de 240 requêtes par seconde (RPS) avec test.com empoisonné sur ce serveur, soit environ 40 millions de visites par jour, selon les estimations. blitz.io. Gardez à l'esprit qu'il s'agit du thème Wordpress par défaut.

Cette performance est excellente et surpasse presque tous les articles de blog (pas tous) concernant les performances. J'ai passé beaucoup de temps et de recherches à en arriver à ce point, mais maintenant, j'ai quelques questions concernant APCu et Memcached.

Une fois que nous passons à un autre thème plus lourd (nous en avons essayé plusieurs), les performances baissent et je ne peux pas dire si memcached fonctionne même.

  1. Ai-je besoin de memcached AND APCu?
  2. Nous rencontrons des problèmes de performances de base de données. Comment puis-je savoir si memcached fonctionne correctement (quel taux de cache est purgé, taux de réussite et d'erreur, etc.)
1
user69633

APCu> Memecachedd lors de la mise en cache sur un seul serveur. Memcached doit être utilisé pour la mise en cache d'objets dans un environnement multi-serveurs alors que sur un seul serveur, la surcharge de communication et de commutation de tâches associée à son utilisation est tout à fait inutile par rapport à l'approche directe non compliquée de la mémoire prise par APCu.

En ce qui concerne le délai d'expiration d'une entrée mise en cache, c'est quelque chose qui est défini du côté wordpress des choses. W3TC a une option de configuration et si vous utilisez l'API de mise en cache wordpress, vous pouvez configurer vous-même l'expiration. Bien entendu, définir le délai d'expiration ne signifie pas que la fonction de mise en cache le conservera aussi longtemps. D'après votre description, il semblerait que vos entrées soient purgées avant l'expiration du délai. Cela peut indiquer que vous ne disposez pas de suffisamment de mémoire pour le cache ou vous ne disposez pas d'un moyen cohérent pour calculer les clés de cache.

Les deux utilitaires de mise en cache ont leurs propres utilitaires de surveillance, qui ne sont pas complexes et ne fournissent pas un bon aperçu, mais mon expérience montre que, si vous devez inspecter des éléments à ce niveau, vous n’utiliserez probablement pas suffisamment de mémoire cache.

Et toute la discussion liée à la mise en cache des objets est inutile si votre W3TC fonctionne correctement, car il devrait y avoir très peu de résultats sur APCu/memcached ou la base de données.

1
Mark Kaplun