Используя Drupal 7 с APC, Varnish и Memcache, какие бины поместить в какой кеш?

12

Я оптимизирую сайт Drupal 7, и у меня есть лак, memcache и APC, все они установлены и работают с их отдельными модулями Drupal 7. В моем файле settings.php у меня есть $confварианты ниже.

Мой вопрос заключается в том, чтобы повысить производительность и обеспечить совместную работу всех этих кешей. Нужно ли добавлять дополнительные параметры конфигурации?

В модуле readme обычно используется одна система кэширования. Есть ли какие-то твики, необходимые для повышения производительности при запуске 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';
user1073319
источник
Мне кажется, что страница проекта для APC достаточно хорошо отвечает на ваш вопрос.
Летарион
Да, я приму этот совет ... «Используйте APC для кэшей, которые не меняются часто и не станут слишком большими, чтобы избежать фрагментации. Настройка APC по умолчанию позволит вам…», но я все же спросил это вопрос, потому что он не учитывает Varnish тоже, могут быть некоторые конкретные изменения конфигурации, которые мне не хватает, я опубликую именно то, что я в конечном итоге использую.
user1073319

Ответы:

6

Выглядит нормально для меня.

Что вы можете попробовать, так это поиграться с опциями Memcache. Существует, например, флаг сжатия, но он обычно зависит от сайта, если имеет смысл включить его, потому что тогда вы будете использовать процессор чаще для сжатия / распаковки.

Я также считаю , что page_cache_invoke_hooks флаг не нужно больше, см http://drupal.org/node/804864 . Если вам не нужны эти крючки для запуска, вы можете установить их, но для Varnish больше нет необходимости.

Использование кэша APC с несколькими веб-серверами означает, что при очистке кэшей на одном сервере вы столкнетесь с несоответствиями, поэтому, если у вас есть несколько кэшей, вы, вероятно, захотите использовать Memcache для cache и cache_bootstrap. У меня также были проблемы со стабильностью при использовании кэша APC, но я использовал его для всех кэшей, что могло быть проблемой.

Berdir
источник
Есть ли проблемы с использованием нескольких систем кэширования, таких как apc, memcache и т. Д.?
chrisjlee
Нет, вы можете смешивать их, как выглядишь. Вы можете поместить в APC меньший кэш, такой как «cache», который работает быстрее, но обычно не занимает много места, и помещать большие в memcache.
Бердир
Благодарю. Знаете ли вы, где я могу узнать, как это сделать?
chrisjlee
Каждая ячейка кэша может быть сконфигурирована для использования определенной базы данных кэша, большинство баз данных кэша поставляются с документацией о том, как их конфигурировать, и вы можете комбинировать их по своему желанию.
Бердир
2

Я запускаю аналогичную настройку с серверами memcache и локально на каждом веб-сервере. Я думал, что локальное кэширование страниц с помощью Varnish будет не таким эффективным, как использование memcache.

Я рассматриваю возможность использования MongoDB для чего-то, так как он у меня работает, и он также является общим ресурсом.

Джерри Сэмптон
источник