一般的なデータベース クエリの結果を保存するために MemcacheD を使用する 2 つの Web サービスがあります。どちらのサービスも、MemcacheD と同様に負荷分散された 3 つの Web サーバーで実行され、パフォーマンスは良好です。ただし、2 週間ごとに、Web サービスの CPU 使用率が通常の 5% から 20% に増加します。Memcache を再起動すると、問題が解決することがわかりました。この特定の Web サービスは MemCacheD をより多く使用し、より大きなオブジェクトを保存します
Memcache を再起動した後、CPU とメモリの使用量が安定し、数日間そのままになるため、問題は Web サービス (私が知っている有名な最後の言葉) にあるとは思いません。
Memcache の使用方法または設定方法に問題がある可能性があると思います。推測する必要があるとすれば、Web サービスが Memcache からオブジェクトを取得するのを待たなければならないという点で、問題は「スラッシング」であると言えます。
Memcache のバージョンが古すぎる (ここから取得した) か、十分なメモリを与えていない可能性があります。各インスタンスには現在 128 MB が割り当てられています。それは低すぎますか?Memcache のパフォーマンスを測定するために使用できるツールはありますか?
編集
割り当てられたメモリを 500MB に増やしたところ、Memcache のインスタンスの 1 つだけを再起動する必要があることがわかりました。これは、Memcache に問題があるのではなく、特定のオブジェクトを使用している方法に問題があることを示しています。私はすぐにこれに修正をプッシュすることを望んでいます。それが違いを生む場合は、この質問への回答を投稿します。