2012-03-08 7 views
4

私はSphinxを使用して100万件のドキュメントを検索しているWebアプリケーションを作成しています。アイドル後のスフィンクスパフォーマンス

パフォーマンスは優れていますが、一般的なクエリでは0.05秒しかかかりませんが、何時間もクエリを実行しないと突然、数回のクエリで1000倍の時間がかかります。クエリログは次のようになります。

[Wed Mar 7 17:23:55.937 2012] 0.221 sec 
[Wed Mar 7 17:32:00.726 2012] 0.012 sec 
[Wed Mar 7 17:32:00.984 2012] 0.052 sec 
[Wed Mar 7 17:32:01.416 2012] 0.222 sec 
[Thu Mar 8 09:15:10.418 2012] 10.147 sec 
[Thu Mar 8 09:16:00.560 2012] 48.262 sec 
[Thu Mar 8 09:16:55.429 2012] 54.153 sec 
[Thu Mar 8 09:17:54.454 2012] 0.012 sec 
[Thu Mar 8 09:17:54.713 2012] 0.052 sec 
[Thu Mar 8 09:17:55.141 2012] 0.218 sec 

私はそれが未使用か何かであるとき、多分私の忙しいサーバはスフィンクスのメモリをスワップされて推測しています。

どうすれば解決できますか?

私は毎分スクリプトの偽のクエリを考えましたが、それはかなり醜いハックのようです。

+0

+1を見つけます。良い質問。うーん、ここで助けてくれる時間の間、自動で質問を暖めることができますか?わからない。 – Yavar

+1

あなたのスフィンクス設定でpreopen_indexesを使用していますか?これは、スフィンクスにメモリにインデックスをロードし、オペレーティングシステムに依存しないように指示します。 – Imraan

答えて

3

このサーバー上のディスクはどのくらいの速さですか?

インデックスのためにディスクに戻る必要があるため、これは想像しています。数回アクセスすると、OSによってファイルがキャッシュされます。

SSDディスクを検討する価値があります。スフィンクスインデックスのために十分な大きさの小さなSSDディスクは、今日では比較的安価です。

実際にメモリスワッピングが行われている場合は、ディスクが遅いことも示唆されます。しかし、それはまた対処すべきものです。サーバーにメモリを追加できますか? (あるいは、ところで

:)新しくインストールされたSSDディスクにスワップパーティションを置くスワップがMuninの(またはサボテンなどのようなもので何が起こっている場合)

+0

+1バリーハンターはスフィンクスの権威であるため、答えを読んでいない。 – Yavar

+0

うーん、それはとても素敵なものだ。しかし、私は本当に質問に答えませんでした。可能な原因を提示するだけで、回避策を講じてアップグレードすることができます。最初のことは、まだ実際の原因を見つけることです。何が原因でこれらのクエリが遅くなるか。 – barryhunter

+1

私はサーバーからいくつかの他のサービスを移動し、余分なメモリを大量に解放しました。問題はすぐに消えて、遅くなることはありません。ありがとう! –

関連する問題