同時にいくつの同時 HTTP リクエストを行うことができますか? 基盤となる OS からのルールはありますか? 私は Windows 7 を使用しています。例: 100 個のスレッドを開始した場合、それらはすべて同時に実行されますか? はいの場合、RAM の量に依存しますか、または RAM のサイズに関係なく固定されますか?
1 に答える
いつものように、状況によります...ここで留意すべき点がいくつかあります。
(1) PC/サーバーが一度に処理できるスレッド数は? これは、メモリ、CPU パワー (コア数など)、サーバーが他に何をしているか、スレッドが I/O 集中型の作業を行っているかどうかに依存します。.NET を使用すると、バージョンによって ThreadPool の制限も異なります (たとえば、.NET 4 の場合: 32 ビット バージョンでは最大 1023 スレッド、64 ビット バージョンでは最大 32768 スレッド)。
(2) お使いの Windows は、発信 HTTP または TCP 接続の最大数を許可するように構成されている場合もあります (私の間違いでなければ、Windows には 64K の発信 TCP 接続のハード リミットがあります)。
(3) プロキシサーバーを介して接続している場合、そのプロキシサーバーも送信接続に制限を課す場合があります。ファイアウォールを通過する場合も同様です。それも、あまりにも多くの同時発信接続をブロックする可能性があります。
(4) 同じサーバーへのすべての接続を開いていますか? Web サーバーにも制限があり、特定のソースからの受信リクエストを x 数だけ許可するように構成されている可能性があるためです。
したがって、これらの数値を知っていない限り、自分の場合の制限を調べるために実験する必要があると思います.