Wenn Sie Drupal 7 mit APC, Varnish und Memcache verwenden, welche Fächer sollen in welchen Cache gestellt werden?

12

Ich optimiere eine Drupal 7-Website und habe Lack, Memcache und APC installiert und arbeite mit ihren einzelnen Drupal 7-Modulen. In meiner settings.php habe ich die folgenden $confOptionen.

Meine Frage ist, ob die Leistung verbessert werden soll und ob alle diese Caches gut zusammenarbeiten. Muss ich weitere Konfigurationsoptionen hinzufügen?

Die Modul-Readme-Dateien setzen normalerweise ein einzelnes Cache-System voraus. Werden Tweks benötigt, um die Leistung von 3 verschiedenen Caching-Backends zu verbessern?

// 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';
user1073319
quelle
Mir scheint, die Projektseite für APC beantwortet Ihre Frage ziemlich gut.
Letharion
Ja, ich werde diesen Rat befolgen ... "Verwenden Sie APC für Caches, die sich nicht oft ändern und nicht zu groß werden, um eine Fragmentierung zu vermeiden. Die Standardeinstellung von APC ermöglicht es Ihnen, ...", aber ich habe dies dennoch gefragt Frage, weil es nicht für Lack auch berücksichtigt, es kann einige spezifische Konfigurationsänderungen geben, die ich vermisse, ich werde genau bekannt geben, was ich letztendlich benutze.
user1073319

Antworten:

6

Sieht für mich gut aus.

Sie können versuchen, mit den Memcache-Optionen herumzuspielen. Es gibt zum Beispiel ein Komprimierungsflag, aber es hängt normalerweise von der Site ab, ob es sinnvoll ist, es zu aktivieren, da Sie dann eine höhere CPU-Auslastung haben, um die Komprimierung / Dekomprimierung durchzuführen.

Ich denke auch, dass das Flag page_cache_invoke_hooks nicht mehr erforderlich ist, siehe http://drupal.org/node/804864 . Wenn Sie diese Hooks nicht zum Laufen benötigen, können Sie sie einstellen, aber es ist nicht mehr erforderlich, damit Varnish funktioniert.

Wenn Sie den APC-Cache mit mehreren Webservern verwenden, treten beim Löschen von Caches auf einem Server Inkonsistenzen auf. Wenn Sie also mehrere haben, möchten Sie Memcache wahrscheinlich auch für den Cache und cache_bootstrap verwenden. Ich hatte auch Stabilitätsprobleme bei der Verwendung des APC-Caches, aber ich habe es für alle Caches verwendet, was möglicherweise das Problem war.

Berdir
quelle
Gibt es ein Problem bei der Verwendung von mehr als einem Cachesystem wie Apc, Memcache usw.?
Chrisjlee
Nein, Sie können sie mischen, wie Sie aussehen. Sie können einen kleineren Cache-Speicher wie "Cache" in APC ablegen, der zwar schneller ist, aber normalerweise nicht so viel Speicherplatz hat, und die größeren in memcache ablegen.
Berdir
Vielen Dank. Würdest du wissen, wo ich herausfinden kann, wie das geht?
Chrisjlee
Jeder Cache-Bereich kann für die Verwendung eines bestimmten Cache-Backends konfiguriert werden. Die meisten Cache-Backends enthalten eine Dokumentation zu deren Konfiguration, die Sie beliebig kombinieren können.
Berdir
2

Ich führe ein ähnliches Setup mit Memcache-Servern und Varnish lokal auf jedem Webserver aus. Ich dachte, dass das lokale Zwischenspeichern von Seiten mit Varnish nicht so effektiv wäre wie die Verwendung von Memcache.

Ich überlege, MongoDB für etwas zu verwenden, da es ebenfalls ausgeführt wird und es sich auch um eine gemeinsam genutzte Ressource handelt.

Jerry Sumpton
quelle