web-dev-qa-db-ja.com

Memcacheでヒット率を上げるにはどうすればよいですか?

Memcacheは稼働サイト http://goniseko.com で数か月間稼働しています。すべてを構成し、メモリの制限を配置する必要がある場合、70%/ 30%のヒット対ミスの比率が非常に一貫していることに気付きました。

どうすればこれを改善できますか?

また、これはmemcacheがインストールされている他のDrupal 7サイト間でかなり一貫していることに気付きました。

Drupal、Memcache、またはこの追加の30%がキャッシュビンに格納されることを許可しない2つの組み合わせについてはどうですか?これらのクエリを理解するにはどうすればよいですか。また、それらをビンに入れるにはどうすればよいですか。

これがAPCに似ていることを願っています。このサイトのヒット率が100%になるように構成しました。 Memcacheをその高さ、または少なくとも70%以上にしたいと考えています。これは、データベースにヒットする必要がある3つのクエリのうち、ほぼ1つです。

4
blue928

私は、サイトへのトラフィックの70%が現在キャッシュに含まれているページであると解釈します。残りの30%は、新鮮さを保つのに十分な頻度で訪問されなかったため、古くなりました。

これは、「キャッシュする方法」に関するより一般的な問題です。ベースDrupalキャッシュは時間ベースです。Drupalのようなより複雑な方法を使用しない場合、8回試行すると、常に次の問題が発生します。時々ヒットをキャッシュすることはできません。おそらくあなたのホームページの99%はキャッシュヒットです。1%はページが更新されている間のヒットです。しかし、「パフォーマンス」設定の設定より古い他のページページはすぐに古くなり、5分間キャッシュし、6分おきにページにアクセスした場合、キャッシュヒットは発生しません。

キャッシュは現在、多かれ少なかれ、トラフィックスパイクまたは(D)DOS攻撃に対する保護です。しかし、すべての状況でWebサーバーを本当に容易にするものではありません。

これに対する本当の解決策はこの質問の上にあり、最も簡単なことはDrupal 8.に行くことです。それは本当にあなたのものを永遠にキャッシュしようと努力します。 http ://buytaert.net/making-drupal-8-fly

全体で70%はそれほど悪くありません。あなたはブーストのようなモジュールを試すことができます: https://www.drupal.org/project/boost

そして、更新されるまでキャッシュする方法を見つけるよりも。しかし、ビューでサイドバーを使用する場合、JavaScriptまたはEdge side include(ESI)などの非同期(AJAX/AHAH)呼び出しを使用しないと、これは大きな問題になります。

1
Kars-T