web-dev-qa-db-ja.com

Memcachedキャッシュサイズ512MまたはVPS2Gの場合は1G?

2GoのRAMを搭載したmemcachedVPSを使い始めました。

キャッシュサイズを512Mbに設定しましたが、1024Mbで行けるかどうか疑問に思っています。

VPSには次のものがあります。

  • 接続が非常に少ないローカルビジネスWebサイト(1日最大10セッション、匿名ユーザーのみなど)、Webマスターがコンテンツを更新することがあります。
  • 賞のウェブサイトは非アクティブです(おそらく別の場所に移動します)。
  • 使用するのは私だけです。
  • そしてうまくいけば、後で別のローカルビジネスWebサイトを配置できます(そしておそらくいくつかの開発サイトを削除できます)。

4つのサイト(1つは匿名、3つは認証済みユーザー)をアクティブ化するときにtopコマンドを見ると、メモリ使用量が最大700Mb、つまり最大1.3Gbの空き容量になっていることがわかります。私はApacheを使用しています。

1ページあたりの現在の読み込み時間は2〜3秒ですが、最初のページはあまり使用されていないサイトでは5〜8秒かかる場合があります。アイデアは、おそらくキャッシュを増やして、より多くのインデックス付きパスとページを持つことです。

しかし、私はスワッピングのリスクについて少し読みました。したがって、2つのローカルビジネスWebサイト+おそらく1つのサンドボックスと1つの開発サイトのページ読み込みを最適化するための最良の選択は何であるか疑問に思っています。

2
Tritof

あなたはおそらく32mbのような非常に小さなもので良いでしょう...

より多くのメモリから大きな多様性のデータを格納するmemcacheを使用する非常にビジーなアプリケーションのみが使用できる可能性があります...

アプリケーションがビジー状態の場合、多様性が高いと、memcachedアイテムはすぐに期限切れになります。 Memcacheメモリは複数のスラブ(セクション)に分割されています。各スラブ/セクションは、割り当てた合計メモリのN番目のメモリ量を取得します。特定のサイズの特定のサイズ範囲のデータキーと値のペアは、常にそのサイズ範囲のアイテムを受け入れるスラブ/セクションに格納されます。 memcachedのメモリ制限を増やす理由を与えるために、キーが通常期限切れになるよりも早くスラブ/セクションを埋めるには、特定のサイズで保存しているデータの多様性が必要であると言っています。

memcacheがどのように使用されているかについての詳細は、確認することをお勧めします http://dev.mysql.com/doc/mysql-ha-scalability/en/ha-memcached-stats-slabs.html

Memcacheの理想的な設定は、許容可能な数の「エビクション」(新しいレコード用のスペースを確保するためにキャッシュから削除されたレコード)がある場合に、可能な限り最小の値を取得する設定です。これは、いくつかのグラフ/トレンドからうまく読み取るか、手動で調べることができます。詳細については、チェックしてください http://dev.mysql.com/doc/mysql-ha-scalability/en/ha-memcached-stats-items.html

アプリがPHPで記述されていて、パフォーマンスを向上させたい場合は、APC、OPcache、XcacheなどのPHP opcodecacherの使用を検討することをお勧めします。 PHPバージョン。

2
Hrvoje Špoljar