nodejs Schnelligkeit und nginx

Nur mit dem testen begonnen nodejs, und wollte um etwas Hilfe im Verständnis von folgendem Verhalten:

Beispiel #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');

Beispiel #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');

Beim testen der Reaktionszeit in Chrome:

Beispiel #1 - 6-10ms

Beispiel #2 - 200-220ms

Aber, wenn der test bei beiden Beispielen durch nginx proxy_pass

server{
    listen 1011;
    location / {
        proxy_pass http://127.0.0.1:1001;
    }
}

bekomme ich diese:

Beispiel #1 - 4-8ms

Beispiel #2 - 4-8ms

Ich bin kein Experte auf entweder nodejs oder nginx, und Fragen, ob jemand das erklären kann?

nodejs - v. 0.8.1

nginx - v. 1.2.2

update:

Dank Hippo, machte ich den test mit dem ab auf meinem server mit und ohne nginx,
und bekam entgegengesetzte Ergebnisse.

ebenfalls Hinzugefügt nginx config proxy_cache aus

server{
    listen 1011;
    location / {
        proxy_pass http://127.0.0.1:1001;
        proxy_cache off;
    }
}

Beispiel #1 direct:

ab-n 1000 -c 50 http://127.0.0.1:1001/

 
Server-Software: 
Server-Hostname: 127.0.0.1 
Server-Port: 1001 

Dokument-Pfad: /
Dokument-Länge: 65 bytes 

Concurrency-Level: 50 
Zeit für tests: 1.018 Sekunden 
Complete requests: 1000 
Fehlgeschlagene Anfragen: 0 
Schreiben Fehler: 0 
Insgesamt übertragen: 166000 bytes 
HTML übertragen: 65000 bytes 
Anforderungen pro Sekunde: 981.96 [#/sec] (mean) 
Zeit pro Anfrage: 50.919 [ms] (mean) 
Zeit pro Anfrage: 1.018 [ms] (mean, across all concurrent requests) 
Übertragungsrate: 159.18 [Kbytes/sec] received 

Connection Times (ms) 
min mean[+/-sd] median max 
Verbindung: 0 0 0.6 0 3 
Verarbeitung: 0 50 44.9 19 183 
Wartezeit: 0 49 44.8 17 183 
Gesamt: 1 50 44.7 19 183 

Beispiel #1 nginx:

ab-n 1000 -c 50 http://127.0.0.1:1011/

 
Server Software: nginx/1.2.2 
Server-Hostname: 127.0.0.1 
Server-Port: 1011 

Dokument-Pfad: /
Dokument-Länge: 65 bytes 

Concurrency-Level: 50 
Zeit für tests: 1.609 Sekunden 
Complete requests: 1000 
Fehlgeschlagene Anfragen: 0 
Schreiben Fehler: 0 
Insgesamt übertragen: 187000 bytes 
HTML übertragen: 65000 bytes 
Anforderungen pro Sekunde: 621.40 [#/sec] (mean) 
Zeit pro Anfrage: 80.463 [ms] (mean) 
Zeit pro Anfrage: 1.609 [ms] (mean, across all concurrent requests) 
Übertragungsrate: 113.48 [Kbytes/sec] received 

Connection Times (ms) 
min mean[+/-sd] median max 
Verbindung: 0 0 0.6 0 3 
Verarbeitung: 2 77 44.9 96 288 
Wartezeit: 2 77 44.8 96 288 
Insgesamt: 3 44.7 78 96 288 

Beispiel #2 direkte:

ab-n 1000 -c 50 http://127.0.0.1:1001/

 
Server-Software: 
Server-Hostname: 127.0.0.1 
Server-Port: 1001 

Dokument-Pfad: /
Dokument-Länge: 76 bytes 

Concurrency-Level: 50 
Zeit für tests: 1.257 Sekunden 
Complete requests: 1000 
Fehlgeschlagene Anfragen: 0 
Schreiben Fehler: 0 
Insgesamt übertragen: 177000 bytes 
HTML übertragen: 76000 bytes 
Anforderungen pro Sekunde: 795.47 [#/sec] (mean) 
Zeit pro Anfrage: 62.856 [ms] (mean) 
Zeit pro Anfrage: 1.257 [ms] (mean, across all concurrent requests) 
Übertragungsrate: 137.50 [Kbytes/sec] received 

Connection Times (ms) 
min mean[+/-sd] median max 
Verbindung: 0 0 0.3 0 2 
Verarbeitung: 0 60 47.8 88 193 
Wartezeit: 0 60 47.8 87 193 
Gesamt: 0 61 47.7 88 193 

Beispiel #2 nginx:

ab-n 1000 -c 50 http://127.0.0.1:1011/

 
Server Software: nginx/1.2.2 
Server-Hostname: 127.0.0.1 
Server-Port: 1011 

Dokument-Pfad: /
Dokument-Länge: 76 bytes 

Concurrency-Level: 50 
Zeit für tests: 1.754 Sekunden 
Complete requests: 1000 
Fehlgeschlagene Anfragen: 0 
Schreiben Fehler: 0 
Insgesamt übertragen: 198000 bytes 
HTML übertragen: 76000 bytes 
Anforderungen pro Sekunde: 570.03 [#/sec] (mean) 
Zeit pro Anfrage: 87.715 [ms] (mean) 
Zeit pro Anfrage: 1.754 [ms] (mean, across all concurrent requests) 
Übertragungsrate: 110.22 [Kbytes/sec] received 

Connection Times (ms) 
min mean[+/-sd] median max 
Verbindung: 0 0 0.4 0 2 
Verarbeitung: 1 87 42.1 98 222 
Wartezeit: 1 42.3 86 98 222 
Gesamt: 1 87 42.0 98 222 

Führt jetzt sieht mehr Logik, aber es gibt noch eine seltsame Verzögerung beim aufrufen res.write()

Ich denke, es war (sieht wirklich nach) eine dumme Frage, aber ich bekomme immer noch riesige Unterschied in der Reaktionszeit im browser mit dieser server-Konfigurationsdatei (Centos 6) und dem konkreten server (vps).

Zuhause auf meinem Rechner (Ubuntu 12), aber mit älteren Versionen testen von localhost funktioniert alles einwandfrei.

  • res.schreiben Sie die Schuldige ist völlig verständlich. Sie sind in der Regel die Verkettung von strings und js (oder v8) sind langsam mit Streichern. Kann mich nicht erinnern, wo ich gelesen habe, es aber.
InformationsquelleAutor alxone | 2012-07-04
Schreibe einen Kommentar