nodejs のテストを開始したばかりで、次の動作を理解するための助けが必要です。
例 #1:
var http = require('http');
http.createServer(function(req, res){
res.writeHeader(200, {'Content-Type': 'text/plain'});
res.end('foo');
}).listen(1001, '0.0.0.0');
例 #2:
var http = require('http');
http.createServer(function(req, res){
res.writeHeader(200, {'Content-Type': 'text/plain'});
res.write('foo');
res.end('bar');
}).listen(1001, '0.0.0.0');
Chrome で応答時間をテストする場合:
例 #1 - 6 ~ 10 ミリ秒
例 #2 - 200 ~ 220 ミリ秒
ただし、nginx proxy_pass を介して両方の例をテストする場合
server{
listen 1011;
location / {
proxy_pass http://127.0.0.1:1001;
}
}
私はこれを得る:
例 #1 - 4 ~ 8 ミリ秒
例 #2 - 4 ~ 8 ミリ秒
私はnodejsまたはnginxの専門家ではありません。誰かがこれを説明できるかどうか尋ねますか?
nodejs - v.0.8.1
nginx - v.1.2.2
アップデート:
Hippo のおかげで、nginx の有無にかかわらず、サーバーで ab を使用してテストを行い、反対の結果が得られました。
nginx config proxy_cache offにも追加されました
server{
listen 1011;
location / {
proxy_pass http://127.0.0.1:1001;
proxy_cache off;
}
}
例 #1 直接:
ab -n 1000 -c 50 http:// 127.0.0.1:1001/
サーバー ソフトウェア: サーバーのホスト名: 127.0.0.1 サーバーポート: 1001 ドキュメント パス: / ドキュメントの長さ: 65 バイト 同時実行レベル: 50 テストにかかった時間: 1.018 秒 リクエストの完了: 1000 失敗したリクエスト: 0 書き込みエラー: 0 合計転送: 166000 バイト HTML 転送: 65000 バイト 1 秒あたりのリクエスト数: 981.96 [#/秒] (平均) リクエストあたりの時間: 50.919 [ms] (平均) リクエストあたりの時間: 1.018 [ms] (すべての同時リクエストの平均) 転送速度: 159.18 [Kbytes/sec] 受信 接続時間 (ミリ秒) 最小平均[+/- sd] 中央値最大 接続: 0 0 0.6 0 3 処理: 0 50 44.9 19 183 待機中: 0 49 44.8 17 183 合計: 1 50 44.7 19 183
例 #1 nginx:
ab -n 1000 -c 50 http:// 127.0.0.1:1011/
サーバー ソフトウェア: nginx/1.2.2 サーバーのホスト名: 127.0.0.1 サーバーポート: 1011 ドキュメント パス: / ドキュメントの長さ: 65 バイト 同時実行レベル: 50 テストにかかった時間: 1.609 秒 リクエストの完了: 1000 失敗したリクエスト: 0 書き込みエラー: 0 合計転送: 187000 バイト HTML 転送: 65000 バイト 1 秒あたりのリクエスト数: 621.40 [#/秒] (平均) リクエストあたりの時間: 80.463 [ms] (平均) リクエストあたりの時間: 1.609 [ms] (すべての同時リクエストの平均) 転送速度: 113.48 [Kbytes/sec] 受信 接続時間 (ミリ秒) 最小平均[+/- sd] 中央値最大 接続: 0 0 0.6 0 3 処理: 2 77 44.9 96 288 待機中: 2 77 44.8 96 288 合計: 3 78 44.7 96 288
例 #2 直接:
ab -n 1000 -c 50 http:// 127.0.0.1:1001/
サーバー ソフトウェア: サーバーのホスト名: 127.0.0.1 サーバーポート: 1001 ドキュメント パス: / ドキュメントの長さ: 76 バイト 同時実行レベル: 50 テストにかかった時間: 1.257 秒 リクエストの完了: 1000 失敗したリクエスト: 0 書き込みエラー: 0 合計転送: 177000 バイト HTML 転送: 76000 バイト 1 秒あたりのリクエスト数: 795.47 [#/秒] (平均) リクエストあたりの時間: 62.856 [ms] (平均) リクエストあたりの時間: 1.257 [ms] (すべての同時リクエストの平均) 転送速度: 137.50 [Kbytes/sec] 受信 接続時間 (ミリ秒) 最小平均[+/- sd] 中央値最大 接続: 0 0 0.3 0 2 処理: 0 60 47.8 88 193 待機中: 0 60 47.8 87 193 合計: 0 61 47.7 88 193
例 #2 nginx:
ab -n 1000 -c 50 http:// 127.0.0.1:1011/
サーバー ソフトウェア: nginx/1.2.2 サーバーのホスト名: 127.0.0.1 サーバーポート: 1011 ドキュメント パス: / ドキュメントの長さ: 76 バイト 同時実行レベル: 50 テストにかかった時間: 1.754 秒 リクエストの完了: 1000 失敗したリクエスト: 0 書き込みエラー: 0 合計転送: 198000 バイト HTML 転送: 76000 バイト 1 秒あたりのリクエスト数: 570.03 [#/秒] (平均) リクエストあたりの時間: 87.715 [ms] (平均) リクエストあたりの時間: 1.754 [ms] (すべての同時リクエストの平均) 転送速度: 110.22 [Kbytes/sec] 受信 接続時間 (ミリ秒) 最小平均[+/- sd] 中央値最大 接続: 0 0 0.4 0 2 処理: 1 87 42.1 98 222 待機中: 1 86 42.3 98 222 合計: 1 87 42.0 98 222
結果はより論理的に見えるようになりましたが、呼び出し時に奇妙な遅延が発生しますres.write()
ばかげた質問だったと思いますが(確かにそう見えます)、このサーバー構成(Centos 6)とこの具体的なサーバー(vps)を使用すると、ブラウザーでの応答時間に大きな違いが生じます。
私の自宅のコンピューター(Ubuntu 12)では、ローカルホストからテストする古いバージョンではすべて正常に動作します。