Drupal 7とAPC、Varnish、Memcacheを使用して、どのビンをどのキャッシュに入れるか?


12

Drupal 7 Webサイトを最適化しています。ワニス、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';

私には、APCのプロジェクトページがあなたの質問にかなりよく答えているようです。
レサリオン

はい、私はこのアドバイスを取ります...「頻繁に変更されず、断片化を回避するために大きくなりすぎないキャッシュにAPCを使用します。APCのデフォルト設定では可能になります。」ワニスを考慮していないため、質問があります。特定の設定変更が欠落している可能性があります。使用したものを正確に投稿します。
user1073319

回答:


6

私には大丈夫に見えます。

Memcacheオプションを試してみてください。たとえば、圧縮フラグがありますが、圧縮/解凍を行うためのCPU使用率が高くなるため、有効にする意味がある場合、通常はサイトに依存します。

私はまた、page_cache_invoke_hooksフラグはもはや必要ではないと思われる参照http://drupal.org/node/804864を。これらのフックを実行する必要がない場合は、設定できますが、Varnishが機能する必要はもうありません。

複数のWebサーバーでAPCキャッシュを使用すると、1つのサーバーでキャッシュをクリアするときに不整合が発生するため、キャッシュが複数ある場合は、キャッシュとcache_bootstrapにもMemcacheを使用することをお勧めします。APCキャッシュの使用時に安定性の問題もありましたが、すべてのキャッシュに使用していましたが、これが問題だった可能性があります。


apc、memcacheなど、複数のキャッシュシステムを使用することに問題はありますか?
chrisjlee

いいえ、見たときにそれらを混ぜることができます。APCに 'cache'のような小さなキャッシュビンを置くことができますが、これは高速ですが、通常はそれほど多くのスペースがなく、大きなキャッシュビンをmemcacheに入れます。
ベルディール

ありがとう。私はそれを行う方法を見つけることができる場所を知っていますか?
chrisjlee

各キャッシュビンは、特定のキャッシュバックエンドを使用するように構成できます。ほとんどのキャッシュバックエンドには、それらの構成方法に関するドキュメントが付属しており、必要に応じて組み合わせることができます。
ベルディール

2

memcacheサーバーとVarnishを使用して、各Webサーバーでローカルに同様のセットアップを実行しています。Varnishを使用したローカルページキャッシュは、memcacheを使用するほど効果的ではないと考えました。

MongoDBを実行することも共有リソースであるため、MongoDBの使用を検討しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.