Usando o Drupal 7 com APC, Varnish e Memcache, quais caixas colocar em qual cache?

12

Estou otimizando um site do Drupal 7 e tenho verniz, memcache e APC instalados e trabalhando com seus módulos individuais do Drupal 7. No meu settings.php, tenho as $confopções abaixo.

Minha pergunta é obter um melhor desempenho e fazer com que todos esses caches funcionem bem juntos, preciso adicionar mais opções de configuração?

Os readme do módulo geralmente assumem um único sistema de cache. Há algum tweks necessário para obter melhor desempenho ao executar três back-end de cache separados?

// 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
fonte
Parece-me que a página do projeto da APC responde muito bem à sua pergunta.
Letharion 11/03/12
Sim, vou seguir este conselho ... "Use a APC para caches que não mudam frequentemente e não aumentam muito para evitar a fragmentação. A configuração padrão da APC permitirá que você ..", mas eu ainda perguntei isso pergunta, porque também não conta para o verniz, pode haver algumas alterações específicas na configuração que estou perdendo, vou postar exatamente o que acabo usando.
user1073319

Respostas:

6

Parece bom para mim.

O que você pode tentar é brincar com as opções do Memcache. Há, por exemplo, um sinalizador de compactação, mas geralmente depende do site, se faz sentido habilitá-lo, porque você tem um uso maior da CPU para fazer a compactação / descompactação.

Também acho que o sinalizador page_cache_invoke_hooks não é mais necessário, consulte http://drupal.org/node/804864 . Se você não precisar desses ganchos para executar, poderá configurá-lo, mas não será mais necessário que o Varnish funcione.

O uso do cache da APC com vários servidores da Web significa que você encontra inconsistências ao limpar caches em um servidor; portanto, se você tiver vários, provavelmente também deseja usar o Memcache para cache e cache_bootstrap. Também tive problemas de estabilidade ao usar o cache da APC, mas o usei para todos os caches, o que pode ter sido o problema.

Berdir
fonte
Existe algum problema com o uso de mais de um sistema de cache, como apc, memcache, etc?
Chrisjlee #
Não, você pode misturá-los à medida que olha. Você pode colocar uma lixeira de cache menor, como 'cache', na APC, que é mais rápida, mas geralmente não tem muito espaço e colocar as maiores no memcache.
Berdir
Obrigado. Você saberia onde eu posso descobrir como fazer isso?
Chrisjlee #
Cada compartimento de cache pode ser configurado para usar um back-end de cache específico, a maioria dos back-ends de cache vem com documentação sobre como configurá-los e você pode combiná-lo como desejar.
Berdir
2

Estou executando uma instalação semelhante com servidores memcache e Varnish localmente em cada servidor web. Eu pensei que o cache da página localmente com o Varnish não seria tão eficaz quanto usar o memcache.

Estou pensando em usar o MongoDB para algo, já que eu o tenho em execução e também é um recurso compartilhado.

Jerry Sumpton
fonte