web-dev-qa-db-ja.com

Drupal 7マルチサイトでMemcacheを効果的に使用する

Memcacheインスタンス(v1.4.4)でヒット率を55%に設定しており、ヒット率を向上させるために何ができるか疑問に思っています。私たちはマルチサイト構成(30以上のサイト)で、2つの負荷分散されたWebサーバーを使用しています。各Webサーバーにmemcachedのインスタンスがあります。

の中に settings.php、 私が持っています:

$conf['memcache_servers'] = array(
         '11.22.33.44:11211' => 'default',
         '11.22.33.45:11211' => 'default',
      );
$conf['memcache_bins'] = array('cache' => 'default');
$conf['memcache_key_prefix'] = $_SERVER['SERVER_NAME'];

ビンを使用してヒット率を向上させることを検討していますが、最新のmemcacheモジュールがすでにこれを実行しているという提案に出くわしましたが、モジュールの手順にビンの設定に関する指示が含まれているため、わかりません。

ビンがそれらの方法である場合、どの(テーブル?)が独自のビンを持つ必要があるかをどのように決定しますか?これらは私が私のサイトに持っているキャッシュテーブルです:

cache
cache_admin_menu (empty)
cache_block (empty)
cache_bootstrap
cache_field
cache_filter (empty)
cache_form (empty)
cache_image (empty)
cache_media_xml (empty)
cache_menu
cache_page (empty)
cache_path (empty)
cache_token (empty)
cache_update (empty)
cache_views
cache_views_data (empty)
ctools_css_cache (empty)
ctools_object_cache (empty)

ビンに加えて、memcachedの使用を改善するために他に何ができますか?

どうもありがとう!

12
KM.

多くの調査の結果、ヒット率とmemcachedの使用に役立つものを以下に示します。

  • Memcachedを1.4.10にアップグレード(パフォーマンスが改善された最新バージョン)
  • 有効なバイナリ形式と圧縮
  • ビンのデフォルトを使用する

Settings.phpのmemcached confは次のようになります。

$conf['memcache_bins'] = array('cache' => 'default');
$conf['memcache_options'] = array(
  Memcached::OPT_COMPRESSION => TRUE,
  Memcached::OPT_BINARY_PROTOCOL => TRUE,
  );
$conf['memcache_persistent'] = TRUE;
$conf['memcache_key_prefix'] = $_SERVER['SERVER_NAME'];

最大ゲイン

ドキュメントでCPUサイクルが増加すると記載されていても、最大のメリットは圧縮を有効にすることでした。 VMには4つのCPUが割り当てられており、違いはわかりません。コンテンツの一部(この場合はカスタム記事)を作成するためのmemcached呼び出しの時間は、1250ミリ秒から150ミリ秒(NewRelicから取得)になりました。

ヒット率

私たちのヒット率は現在〜70%です-以前の55%よりはるかに優れていますが、一部の人が報告した90%+は静かではありません...クエストは続行します(-:

うまくいけば、これは他の誰かを助けます。他の改善に出くわしたり、修正や提案がある場合は、コメントや回答を投稿してください。

更新-memcaheモジュールのバージョン

バージョン1.0-beta4から1.0になり、ヒット率は87%になりました。ヒット率が70%を超えていなかったため、memcachedを再起動する必要がありました。現在64MBがmemcachedに割り当てられているため、これは私たちにとって大した問題ではありませんでした。

13
KM.