私は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
私はそれが未使用か何かであるとき、多分私の忙しいサーバはスフィンクスのメモリをスワップされて推測しています。
どうすれば解決できますか?
私は毎分スクリプトの偽のクエリを考えましたが、それはかなり醜いハックのようです。
+1を見つけます。良い質問。うーん、ここで助けてくれる時間の間、自動で質問を暖めることができますか?わからない。 – Yavar
あなたのスフィンクス設定でpreopen_indexesを使用していますか?これは、スフィンクスにメモリにインデックスをロードし、オペレーティングシステムに依存しないように指示します。 – Imraan