Web スクレイパーが PHP で記述され (nginx、ubuntu で実行)、一度に多くの異なるサイトをスクレイピングする多くのスクレイパーが必要な場合、制限要因は何でしょうか?
CPU、RAM、またはディスク IO?
Web スクレイパーが PHP で記述され (nginx、ubuntu で実行)、一度に多くの異なるサイトをスクレイピングする多くのスクレイパーが必要な場合、制限要因は何でしょうか?
CPU、RAM、またはディスク IO?
RAMとディスクIOは、実行している同時プロセスの方法によっては、CPUよりずっと前に制限される可能性があります。各スクレーパーは、おそらく、訪問したURLと見つかったリソースの連想配列を維持します。大規模なサイトの場合、これは...大きくなります。特に、URLごとに4kを許可し、それを生で保存する場合はなおさらです。
おそらくURL(40バイトのGUID、またはより小さなバイナリ表現)をハッシュして、多くのRAMを節約できるようにします。
ディスクI/Oをできるだけ避け、その影響を軽減するために絶対に必要な場合にのみ書き込みを行い、ネットワークマウントである可能性のあるディスクファイルに書き込むのではなく、DBに書き込むことを検討してください。