2010-01-18 5 views
6

So gab es viele Artikel wie this one vor kurzem, pries die Vorteile von Django Static Generator, wenn in Kombination mit einem leichten Front-End-Webserver verwendet. Das macht sehr viel Sinn für mich.Warum sind nicht Django Static Generator & Nginx mir Boss Geschwindigkeit?

Allerdings bekomme ich nichts wie die Ergebnisse, die andere Leute berichten - Tausende von Anfragen pro Sekunde - und ich weiß nicht, warum das so ist.

Ich bin bereit, ein Redesign der Website meiner Zeitung zu starten. Ich habe es jetzt mit Static Generator auf einem Testserver. Und wenn ich Apache Bench auf einem bestimmten statischen Seite laufen lasse, erhalte ich ziemlich miserable Ergebnisse:

ab -c 10 -n 1000 http://journal.streamlister.com/news/

Concurrency Level:  10 
Time taken for tests: 53.011 seconds 
Complete requests:  1000 
Failed requests:  0 
Write errors:   0 
Total transferred:  21281212 bytes 
HTML transferred:  21067360 bytes 
Requests per second: 18.86 [#/sec] (mean) 
Time per request:  530.107 [ms] (mean) 
Time per request:  53.011 [ms] (mean, across all concurrent requests) 
Transfer rate:   392.04 [Kbytes/sec] received 

ich top auf dem Server bin gerade während der Belagerung auf, und ich kann sehen, dass es Apache oder den Datenbankserver überhaupt nicht treffen. So dient es tatsächlich der zwischengespeicherten Seite. Nginx wird ausgeführt, aber es wird nie mehr als 2% Arbeitsspeicher verwendet. Die CPU bleibt zu etwa 95 Prozent im Leerlauf.

Was mache ich falsch? Könnte ich irgendwie nginx falsch konfiguriert haben? Meine Hauptkonfigurationsdatei wird unten eingefügt; Das für diese Site spezifische Include ist eine Kopie der Beispielkonfiguration auf der Static Generator home page. Ich benutze Ubuntu 9.10 auf einem Slice Host 256k Slice.

user not_my_real_username; 
worker_processes 4; 
error_log /var/log/nginx/error.log; 
pid  /var/run/nginx.pid; 
events { 
    worker_connections 8192; 
} 
http { 
    include  /etc/nginx/mime.types; 
    default_type application/octet-stream; 
    access_log /var/log/nginx/access.log; 
    sendfile  on; 
    #tcp_nopush  on; 
    keepalive_timeout 0; 
    #keepalive_timeout 65; 
    tcp_nodelay  on; 
    gzip on; 
    include /etc/nginx/conf.d/*.conf; 
    include /etc/nginx/sites-enabled/*; 
} 

Antwort

3

Ich bin kein Experte in diesem Fall. Aber wenn CPU im Leerlauf ist und auch Speicher nicht der Flaschenhals ist, kommt mir die Festplatte in den Sinn. Vielleicht ist es sehr langsam und die schlechte Geschwindigkeit ist ein Hinweis auf eine defekte Festplatte.

Sie sollten einige einfache Benchmarks ausführen.

1

Wohin machst du den Test? Ein anderer Server im selben Datencenter oder Ihre Internetverbindung zu Hause/am Arbeitsplatz? Es wird schwierig sein, die Leistung Ihrer Website zuverlässig von Ihrer Heimverbindung aus zu testen. Zum einen ist Ihre Internet-Verbindung möglicherweise zu langsam und zum anderen können viele persönliche Router nicht mit so vielen gleichzeitigen Verbindungen umgehen.

Auch ... versuchen Sie den Benchmark ohne die Bilder zu laufen.

Verwandte Themen