En utilisant Drupal 7 avec APC, Varnish et Memcache, quels bacs mettre dans quel cache?


12

J'optimise un site Web Drupal 7 et j'ai vernis, memcache et APC tous installés et travaillant avec leurs modules Drupal 7 individuels. Dans mon settings.php j'ai les $confoptions ci-dessous.

Ma question est d'obtenir de meilleures performances et que tous ces caches fonctionnent bien ensemble, dois-je ajouter plus d'options de configuration?

Les fichiers readme du module supposent généralement un système de cache unique. Y a-t-il des semaines nécessaires pour obtenir de meilleures performances en exécutant 3 backends de mise en cache distincts?

// Add Varnish as the page cache handler.
$conf['cache_backends'][] = 'sites/all/modules/varnish/varnish.cache.inc';
$conf['cache_class_cache_page'] = 'VarnishCache';
// Drupal 7 does not cache pages when we invoke hooks during bootstrap.
// This needs to be disabled.
$conf['page_cache_invoke_hooks'] = FALSE;

$conf['cache_backends'][] = 'sites/all/modules/apc/drupal_apc_cache.inc';
$conf['cache_class_cache'] = 'DrupalAPCCache';
$conf['cache_class_cache_bootstrap'] = 'DrupalAPCCache';
//$conf['apc_show_debug'] = TRUE;  // Remove the slashes to use debug mode.

$conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc';
$conf['cache_default_class'] = 'MemCacheDrupal';
$conf['cache_class_cache_form'] = 'DrupalDatabaseCache';

Il me semble que la page projet d' APC répond plutôt bien à votre question.
Letharion

Oui, je vais suivre ce conseil ... "Utilisez APC pour les caches qui ne changent pas souvent et ne grossiront pas trop pour éviter la fragmentation. Le paramètre par défaut d'APC vous permettra de ..", mais j'ai quand même posé cette question question car il ne tient pas compte du vernis aussi, il peut y avoir des changements de configuration spécifiques qui me manquent, je posterai exactement ce que je finis par utiliser.
user1073319

Réponses:


6

Ça me va.

Ce que vous pouvez essayer, c'est jouer avec les options de Memcache. Il y a par exemple un indicateur de compression mais cela dépend généralement du site s'il est logique de l'activer car vous avez alors une utilisation plus élevée du processeur pour effectuer la compression / décompression.

Je pense également que le drapeau page_cache_invoke_hooks n'est plus nécessaire, voir http://drupal.org/node/804864 . Si vous n'avez pas besoin de ces crochets pour fonctionner, vous pouvez le définir, mais il n'est plus nécessaire que Varnish fonctionne.

L'utilisation du cache APC avec plusieurs serveurs Web signifie que vous rencontrez des incohérences lors de la suppression des caches sur un serveur, donc si vous en avez plusieurs, vous souhaiterez probablement utiliser Memcache pour cache et cache_bootstrap également. J'ai également eu des problèmes de stabilité lors de l'utilisation du cache APC, mais je l'ai utilisé pour tous les caches, ce qui pourrait être le problème.


Y a-t-il un problème avec plus d'un système de mise en cache comme apc, memcache, etc.?
chrisjlee

Non, vous pouvez les mélanger à votre guise. Vous pouvez mettre un plus petit bac de cache comme «cache» dans APC qui est plus rapide mais qui n'a généralement pas beaucoup d'espace et mettre les plus grands dans memcache.
Berdir

Merci. Souhaitez-vous savoir où je peux trouver comment procéder?
chrisjlee

Chaque cache peut être configuré pour utiliser un backend de cache spécifique, la plupart des backends de cache sont livrés avec une documentation sur la façon de les configurer et vous pouvez les combiner comme vous le souhaitez.
Berdir

2

J'exécute une configuration similaire avec les serveurs memcache et Varnish localement sur chaque serveur Web. Je pensais que la mise en cache de page localement avec Varnish ne serait pas aussi efficace que l'utilisation de memcache.

J'envisage d'utiliser MongoDB pour quelque chose car je le fais aussi fonctionner et c'est aussi une ressource partagée.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.