结合使用带有APC,Varnish和Memcache的Drupal 7,将哪些容器放入哪个缓存中?


12

我正在优化Drupal 7网站,并且已经安装了清漆,内存缓存和APC,并使用了它们各自的Drupal 7模块。在我的settings.php中,有以下$conf选项。

我的问题是要获得更好的性能,并使所有这些缓存协同工作,我是否需要添加更多配置选项?

模块自述文件通常假定使用单个缓存系统。通过运行3个单独的缓存后端,是否需要任何技巧来获得更好的性能?

// 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';

在我看来,APC的项目页面可以很好地回答您的问题。
Letharion 2012年

是的,我将接受此建议...“将APC用于不会经常更改并且不会增长得太大以避免碎片的高速缓存。APC的默认设置将允许您执行..”,但我仍然要求这样做问题,因为它也不能解决Varnish的问题,可能缺少一些特定的配置更改,我将确切发布最终使用的配置。
user1073319 2012年

Answers:


6

对我来说还不错。

您可以尝试使用Memcache选项。例如,有一个压缩标志,但是启用它通常取决于站点,因为这样一来,您有较高的CPU使用率来进行压缩/解压缩。

我还认为不再需要page_cache_invoke_hooks标志,请参阅http://drupal.org/node/804864。如果您不需要运行这些挂钩,则可以进行设置,但不再需要Varnish起作用。

将APC缓存与多个Web服务器一起使用意味着清除一台服务器上的缓存时会遇到不一致的情况,因此,如果您有多个,则可能还希望将Memcache用于缓存和cache_bootstrap。使用APC缓存时,我也遇到了稳定性问题,但是我确实将其用于所有缓存,这可能就是问题所在。


使用多个缓存系统(例如apc,memcache等)是否有任何问题?
chrisjlee 2013年

不,您可以随意混合使用。您可以在APC中放入一个较小的缓存容器(如“缓存”),该缓存容器速度更快,但通常没有那么多空间,而将较大的缓存容器放在memcache中。
Berdir 2013年

谢谢。您知道我在哪里可以找到方法吗?
chrisjlee 2013年

可以将每个缓存容器配置为使用特定的缓存后端,大多数缓存后端附带有关如何配置它们的文档,您可以根据需要进行组合。
Berdir

2

我正在使用内存缓存服务器和Varnish在每个Web服务器上本地运行类似的设置。我认为使用Varnish在本地进行页面缓存不如使用内存缓存有效。

我正在考虑将MongoDB用于某些用途,因为它也可以运行,并且它也是共享资源。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.