2012-01-05 6 views
2

私は、検索をホストしているプロダクションWebサーバーと、Solr検索サーバーをホストしている別のマシンを持っています。すべてが時間の90%を超えても問題ありませんが、私は一貫してThe operation has timed outというエラーの数が少なくなります。SolrNetを使用したSolrサーバーへの断続的な接続タイムアウト

私は秒(!)

SolrNet.Startup.Init<SolrDataObject>(
    new SolrNet.Impl.SolrConnection(
     System.Configuration.ConfigurationManager.AppSettings["URL"] 
    ) {Timeout = 30000} 
); 

にinit SolrNetにタイムアウトを増加させてきました...しかし、起こったことすべてが、私は私が前に見ていたこのメッセージの代わりに、Unable to connect to the remote serverを得て開始されました。タイムアウトエラーの量には何の差もなかったようです。

私は内の任意のログを何もを見ることができない(私が見てきた私を信じて!)、それはほとんどの時間を動作するため、明らかに私の設定は正しいです。どのように私はこの問題についての詳細情報を見つけることができる任意のアイデア誰ですか?

EDIT:

私は今(私は10の接続まで参照)2からの「大量」にHttpRequestの接続数を増加している - これは、この問題に識別可能な影響を与えませんでした。

ファイアウォールは、2つのマシン間のANY接続を許可するように設定されています。

私たちはサーバホストとのハードウェアもチェックしており、接続に問題はありません。

EDIT 2:

我々はまだこの問題を見ています。

これで、タイムアウトが記録されています。ほとんど30秒を超えています。これはSolrNetレイヤのタイムアウトです。 Tomcatのデフォルトのタイムアウト期間である20秒もありますが、これはマシン間の実際の接続に何かを示唆しています。

ここではどこに行くのかわかりません。それらはVLAN上にあり、特にVLANアドレスを使用しています.pingからの応答時間は常に< 1msです。

+1

コミット/最適化戦略は何ですか? –

+0

これはあなたの質問に答えることを願っています:私たちは15分ごとに1回dataimporthandler deltaを行います。そして一晩中完全輸入。しかし私はどのような最適化もしていません。私は行って、今読んでいくつもりです...あなたは何をお勧めしますか? –

+0

うーん、読んでいて、スケジュールされたアップデートを追加したばかりですか?完全なインポート後に毎晩毎晩optimize = trueになります...しかし、TBH私は最適化がタイムアウトを30秒以上と考えているとは思っていません。 1秒未満です。 –

答えて

2

より多くの情報がなければ、私はほんの数考えられる理由を推測することができます。

+0

巨大で、たくさんのFQと、たくさんのFacet.Queriesがあるので、例のクエスチングをコピーしませんでした。 QTimeは100〜200秒でダウンしています。私は行が20に設定されているので、たくさんのドキュメントを返さない。リンクありがとう。それらをチェックします。 –

+0

私はServicePoint.ConnectionLimitを変更することに興味がありますが、SolrNetを使用してこれを行う最善の方法は不明ですか?一番上に置いてください:System.Net.ServicePointManager.DefaultConnectionLimit = 200;SolrNet.Startup.Init (新しいSolrNet.Impl.SolrConnection(System.Configuration.ConfigurationManager.AppSettings ["URL"]){Timeout = 30000}); ? –

+0

@IanGraingerはい、代わりにweb.configで設定することもできます。 –

0

これは.netで設定してください。

ServicePointManager.Expect100Continue = false;

またはこの

ServicePointManager.SetTcpKeepAlive(true, 200000, 200000); - これは生きている、接続を維持するために、サーバーに要求を送信します。

+0

かなり広範な読書をした後、これがJavaの実行方法かもしれません。私はそれがメモリやそれに類するものをリサイクルしている間にリクエストを処理することをやめてしまうと思います...次回私がサーバーに変更を加えたときにこれらを調べてみましょう。 –

関連する問題