3

私は Node.js ワークロード テストに取り組んでおり、興味深い動作に遭遇しました。HTTP サーバーの最小応答時間は、最も単純なロジックでも 200 ミリ秒です。

var http = require("http");

http.createServer(function(request, response) { 

  response.write("Hello World");
  response.end();

}).listen(8080);

Windows Server 2003 で実行:

> node main.js

ウェブを検索しましたが、これに関する情報は見つかりませんでした。テストはローカル ネットワークで行われ、さらに他の Web サーバー (つまり IIS) を使用すると、即時の応答時間を実現できます。誤解しないでください。この動作の背後には合理的な説明があるので、これが私の質問です。

これはnode.js に付属するデフォルトの動作ですか、それとも何か他の結果である可能性がありますか?

オンデマンドでの説明:

  • ノード js バージョン: 0.6.11
  • OS: Windows Server 2003 R2 SP2
  • サーバー環境:VMWare Workstation 8.0.0
  • ワークロード ユーティリティ: jMeter 2.6 (1 スレッド ワークロード)

アップデート

遅延動作は、リモート リクエスト中にのみ表示されます。ローカル ワークロード テストを実行すると、レイテンシはほぼゼロになります。ただし、同じサーバー上の IIS に対するリモート リクエストでは遅延が発生しないため、ネットワーク遅延の問題になることはありません。他のOSで試してみます。

4

3 に答える 3

3

Windows でデフォルトで設定されている Nagle アルゴリズムです (Azure 上の Windows 2008 R2 でも再現可能)。

回避策 - 次のように、応答ソケットで無効にします。

response.connection.setNoDelay(true);
于 2012-04-16T17:41:27.583 に答える
2

ここでは、遅延 5 ミリ秒、ダウンロード 3 ミリ秒、合計 8 ミリ秒を取得しています。変動しますが、私が見た最高値は合計で約 14ms です。

ただし、OS X 10.7.3 で実行されました。Windowsで試して確認する必要があります。

于 2012-02-20T03:15:47.077 に答える
1

Ubuntu 64 ビットとノード バージョン 0.6.10 を実行していますが、最大で 20 ミリ秒の遅延が発生します。Node は Windows ではまだ完全ではないため、Windows の問題だと思います。もう少し安定するまで待つ必要があります。問題をメーリングリストに投稿することをお勧めします。

于 2012-02-20T02:37:28.177 に答える