2010-11-24 15 views
0

私は、ユーザーごとに8セットのリクエストを6セット、合計で約2000人のユーザーを送信するという、この特定のタスクを実行しています。コマンドを送信するために使用される一連のGETリクエストです。cURLプロセッサの使用量を減らす

送信を高速化するために、私は4つのカールマルチハンドルを構築しました。それぞれ8つの要求を保持し、次々とそれらを発射し、次のユーザーと継続します。私のCPUの99%を食べて、わずかに私の帯域幅で毎秒約5kbしか食べないというわずかな問題。リークなど何もありませんが、96000リクエストを送信すると、デュアルコアAMD Phenomで約3時間ほどかかります。

これをスピードアップできる方法はありますか? cURLの代わりにfile_get_contents()を使用すると、50%遅くなります。しかし、cURLは5 kbpsしか使用せず、CPUを消費します。

答えて

0

あなたのリクエストにcurlではなくfopen()を使ってみましたか?これは、あなたがリクエストを送信している場所に負荷をかけている可能性もあります。 Webサーバーが要求を終了するまで戻りません。ユーザーに提示するためにデータを戻す必要がありますか?そうでない場合は、バックグラウンドでクエリを実行できますか?実際の質問は、なぜあなたは非常に多くのリクエストを送信しているのですか、より少ないリクエストにそれらを統合するほうがはるかに良いでしょう。この設定では、速度に貢献できる多くの変数があります。

関連する問題