2010-11-18 2 views
2

私は多くのURLの状態を確認するためにPHPでcurl_multi_execを使用しています。私はこれをベンチマークして、与えられたシステムに対して、カールがキューイングを開始する前に同期的にチェックできるハンドラの数を知っています。誰かが容量をどのように測定するかについての経験はありますか?curl_multi_execはいくつのスレッドを使用しますか?

おかげで、

アダム

+0

あなたは 'netstat'を使い、それが開くアクティブな接続の数を見ることができます。その後、netstatからのカウントが減少し始めるまで、URLの数を増やしてください。 – ircmaxell

+0

ええ、私はそれについて考えましたが、ほとんどのURLは半分以下で戻ってきます。私はそれを試してみましょう、ありがとう! –

+0

さて、同じサーバー(または別のローカル)にサイトを作成してください。 60秒間だけ休眠するページを作成します。その後、そのページへの大量の接続を開きます。それはあなたが 'netstat'から意味のある出力を得るのにまだ十分に長くなければなりませんが、まだ簡単で簡単に構築できます。 – ircmaxell

答えて

2

あなたはそれが(選択を使用していることPHPのソースコードから見ることができる)と非ブロッキングが読み込みます。 したがって、1つのプロセスだけが使用されます。

fd> = FD_SETSIZEのファイル記述子を与えると、select()は失敗することに注意してください。 FD_SETSIZEの制限は、PHPをコンパイルするときに定義されます。デフォルトは256と思われます。PHPの実装でpoll()を使用するほうがよいでしょう。正しいcurl_multi_exec()の使用について

curl_multi_execは())(curl_multi_selectが続くべきです。それはビジーなループでそれらをチェックするのではなく、利用可能なデータを待つでしょう。 example in the PHP manualが良好です。

関連する問題