Jakie pojemniki umieścić w Drupal 7 z APC, Varnish i Memcache?

12

Optymalizuję stronę internetową Drupal 7 i mam zainstalowany lakier, memcache i APC i pracuję z ich poszczególnymi modułami Drupal 7. W moim settings.php mam $confponiższe opcje.

Moje pytanie brzmi: aby uzyskać lepszą wydajność i aby wszystkie te pamięci podręczne działały dobrze, czy muszę dodać więcej opcji konfiguracji?

Moduły readme zwykle zakładają pojedynczy system pamięci podręcznej. Czy potrzebne są jakieś poprawki, aby uzyskać lepszą wydajność dzięki uruchomieniu 3 oddzielnych backendów buforowania?

// 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';
użytkownik1073319
źródło
Wydaje mi się, że strona projektu APC dość dobrze odpowiada na twoje pytanie.
Letharion
Tak, skorzystam z tej rady ... „Używaj APC do pamięci podręcznych, które nie zmieniają się często i nie będą zbyt duże, aby uniknąć fragmentacji. Domyślne ustawienie APC pozwoli ci…”, ale wciąż o to pytałem pytanie, ponieważ nie uwzględnia ono również Lakieru, mogą istnieć pewne specyficzne zmiany konfiguracji, których mi brakuje, opublikuję dokładnie to, czego używam.
user1073319,

Odpowiedzi:

6

Dla mnie wygląda dobrze.

Możesz wypróbować opcje Memcache. Istnieje na przykład flaga kompresji, ale zwykle zależy od strony, czy warto ją włączyć, ponieważ wtedy masz większe użycie procesora do kompresji / dekompresji.

Myślę również, że flaga page_cache_invoke_hooks nie jest już potrzebna, patrz http://drupal.org/node/804864 . Jeśli nie potrzebujesz tych haków do uruchomienia, możesz je ustawić, ale nie jest już konieczne, aby Varnish działał.

Używanie pamięci podręcznej APC z wieloma serwerami WWW oznacza, że ​​napotykasz niespójności podczas czyszczenia pamięci podręcznych na jednym serwerze, więc jeśli masz wiele, prawdopodobnie chcesz użyć Memcache do pamięci podręcznej i cache_bootstrap. Miałem również problemy ze stabilnością podczas korzystania z pamięci podręcznej APC, ale użyłem jej do wszystkich pamięci podręcznych, co mogło być problemem.

Berdir
źródło
Czy istnieje problem z używaniem więcej niż jednego systemu buforowania, takiego jak apc, memcache itp.?
chrisjlee
Nie, możesz je mieszać, jak wyglądasz. Możesz umieścić mniejszy pojemnik na pamięć podręczną, taki jak „pamięć podręczna” w APC, który jest szybszy, ale zwykle nie ma tak dużo miejsca i umieszcza większe w pamięci podręcznej.
Berdir
Dzięki. Czy wiesz, gdzie mogę się dowiedzieć, jak to zrobić?
chrisjlee
Każdy pojemnik pamięci podręcznej można skonfigurować tak, aby używał określonego zaplecza pamięci podręcznej, większość zaplecze pamięci podręcznej zawiera dokumentację, jak je skonfigurować i można je dowolnie łączyć.
Berdir,
2

Korzystam z podobnej konfiguracji z serwerami memcache i Varnish lokalnie na każdym serwerze internetowym. Myślałem, że lokalne buforowanie stron przy pomocy Varnish nie będzie tak skuteczne jak używanie memcache.

Zastanawiam się nad użyciem MongoDB do czegoś, ponieważ mam go również uruchomioną i jest to również zasób udostępniony.

Jerry Sumpton
źródło