2011-10-02 11 views
17

キャッシュの容量計画の実行方法。 ehCache、memcache、またはdynacacheにどれだけのRAMを割り当てるか? 業界標準の式はありますか?キャッシュの容量計画

私は約60,000レコードをデータベースに持っています。これは、会社名、説明、会社コードを含む会社データです。私はjQueryを使用してタイプアウト機能を実装し、この会社名の詳細をキャッシュに保存したいと考えています。

理想的なキャッシュサイズは何ですか?私は、キャッシュサイズは使用可能な空きメモリの量に制限されていますが、特定の方法を知りたいと思っています。または試行錯誤して、サイズとテストを開始し、グラフをプロットしてキャッシュサイズを調整し続けることができます。

更新

会社イド - CHAR(9)

会社名 - VARCHAR2(250 CHAR)

会社DESC - NVARCHAR2(1,000 CHAR)

+0

会社のデータが持つ各フィールドの最大長はいくらですか? –

+0

私は列の長さの詳細を追加して質問を更新しました – basav

+3

会社IDにCHAR(9)の代わりにINTを使用することをお勧めします –

答えて

38

1)専用のキャッシュサーバーを使用している場合、使用する必要があるメモリ容量を心配する必要はありません。使用可能な(または近い)空きメモリの最大量を使用して、その魔法を実行させることができます。

2)キャッシングサーバーがWebサーバーと同じ場合、memcached(dynacacheなど)の使用を指定する必要があります。私の見解では、理想的なキャッシュサイズは実際にはありません。それはすべてあなたのサーバがどれだけのメモリを持っているか、どれくらいのデータをキャッシュなどに入れなければならないかによって決まります。

この場合、キャッシュに保存する必要があるデータは100 MB未満です。サーバーの使用量に応じて、データは非常に小さくなりますが、データがどれだけ増えたかを考える必要があります。また、クライアント、製品などの追加データを追加する必要があります。したがって、必要以上の容量を置かない場合は、サービスを停止し、許可されたメモリの値を増やし、サービスを開始する必要があります。

サーバーが大量のメモリを必要とする多くの情報を処理する場合、これらのプロセスに必要なメモリとリソースの量を計算する必要があります。

クイック例:総メモリの4Gと

  • 1サーバ(キャッシュとウェブサーバ)。
  • cronジョブ、データベース等:3Gの100Mbの合計
  • 60,000クライアント(常に念の実際のサイズよりも使用)

この例では、メモリの1Gを含むシステムおよびプロセスリソース左(約)。システムに十分な余裕があるので、残りの合計金額はお勧めしません。私はあなたのキャッシュのための384メガバイト以下を使用して良いスタートになると言うでしょう。キャッシュを大きくして、システムメモリには影響しません。

システムのメモリ割り当てとキャッシュバランスが完全に一致するようにサーバーを監視することをお勧めします。

ここには良い記事があります:http://techgurulive.com/2009/07/22/how-to-allocate-memory-within-memcached/

+0

詳細な説明(+1)ありがとうございます。私の場合は、上記の2つ目のポイントです。本質的には、あなたが言っているのは、まず、システム、OS、および他のリソースを考慮して、空きメモリがどれくらいあるかを見つけ出すことです。それから、必要なものより少し多くを割り当てる(可用性に基づいて)。 Btw、どうやって上記の100 MBが出てきたのですか?文字とVARCHARを追加しましたか? – basav

+1

各フィールドの最大値*クライアント数を計算するか、安定したステータスを表示することができます。フィールドコール "data_length"が表示されるはずです(これはMySQLで行います: 'show table status'、私はそこにOracle版があると確信しています)。それでは、簡単に言えば、私のデータがどのくらいかかりますか、ちょうど安全であるように少し増やしてください。しかし、私が言ったように、完璧な解決策はありません。あなたは、あなたのサーバーに最適なものが何であるかをチェックする必要があります。 –

+15

非常に良い説明 – eric

関連する問題