私は単純なPHPライブラリを使用して、HTTPを介してSOLRインデックスにドキュメントを追加しています。PHP Curlライブラリを使用した永続的/キープアライブHTTP?
現在、関連する3台のサーバがあります
- データを保持
- データベースボックスが
- Solrのボックスインデックス付けされたインデックス作成ジョブを実行しているPHPボックス。
80文書/秒(百万文書のうち)で、私はPHPとソルボックスのネットワークインターフェイスで異常に高い割り込みレートに気付いています(2000 /秒;さらにグラフはほぼ同じ - PHPボックスの割り込みレートが急上昇すると、Solrボックスも大きくなりますが、データベースボックス(300 /秒)ではそれほど大きくなりません。これは、データベースサーバーとの1つの接続を開いて再利用するためだと思いますが、Solrクライアントライブラリの記述方法のおかげで、すべての単一のSolrリクエストが現在cURLを介して新しいHTTP接続を開始しています。
だから、私の質問は:
- は、キープアライブセッションを開くようにすることがカールすることはできますか?
- 接続を再利用するには何が必要ですか? - cURLハンドルリソースを再利用するだけで簡単ですか?
- 特別なcURLオプションを設定する必要がありますか? (強制HTTP 1.1など)
- cURLキープアライブ接続の問題がありますか?このスクリプトは一度に数時間実行されます。単一の接続を使用できるか、定期的に再接続する必要がありますか?
さて、私が使用してい私たちは、認証が必要な数多くのページを持つサイト全体を解析し、セッション全体を維持していました。 initalハンドルリソースを使用すると、コマンドを実行してページを取得し、クライアントと同じセッションと接続を維持できます。 コマンドラインを使用すると、これは約20分(私たちのすべてのデータ要件のため、それ以上続くことができます)、再接続する必要はありません。しかし、私はこれがあなたが尋ねているものであるかどうかは分かりません。答えはコメントであり、答えではありません:) –
もう1つのメモは、しばしば、あなたがやっていることとあなたのサーバーに応じて設定する必要があるオプションがありますに接続しています。これについては、ここで詳しく説明しています:http://uk3.php.net/manual/en/function.curl-setopt.php –
FAQのこの部分は、大したことはありませんが、関連性があります.http://curl.haxx .se/docs/faq.html#Can_I_perform_multiple_requests –