1

私は現在、node.js をテスト イニシエーターとして使用し、Apache を Web サーバーとして使用して、単純な http Web サイトを提供する非常に単純な負荷テストを作成しています。次のコードを使用して 1000 の GET 要求を発行するとします。

var options = {
  host: 'private.webserver',
  path: '/',
  port: '80',
  method: 'GET'
};
var testnr = 1000;
while(testnr--) http.request(options, function(res){cb();}).end();

(予想どおり) 完了するまでにかなり長い時間がかかりますが、サーバーでは、テストの実行中に約 10 ~ 15% の CPU 使用率しか表示されません。彼らのある種のリミッターはアクティブですか?node.js イニシエーターの分散セットアップを使用している場合、同じ動作が見られますか?

4

1 に答える 1

1

http.Agent特定のエージェントが開くことができるソケット接続の数を示す属性maxSocketsあります。デフォルトは 5 です (つまり、実際には一度に 5 つの HTTP 要求しか作成していません)。この値http.globalAgentは、http モジュールがデフォルトで HTTP 要求を作成するために使用するエージェントである で変更できます。

http.globalAgent.maxSockets = 1000 // or as mnay as you want to handle at a time
于 2012-07-03T21:42:51.633 に答える