2010-01-18 7 views
6

Quindi ci sono stati un sacco di articoli come this one recentemente, esaltando le virtù di Django Static Generator quando usato in combinazione con un server Web front-end leggero. Ha molto senso per me.Perché Django Static Generator e Nginx non mi danno la massima velocità?

Tuttavia, ottengo niente come i risultati che altre persone stanno segnalando - migliaia di richieste al secondo - e non so perché.

Mi sto preparando a lanciare una riprogettazione del sito Web del mio giornale. L'ho fatto usando Static Generator su un server di test in questo momento. E quando ho eseguito Apache Bench su una particolare pagina statica, ottengo risultati abbastanza misero:

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 

sto guardando top sul server, mentre l'assedio è acceso, e posso vedere che è non colpendo affatto Apache o il server del database. Quindi, in realtà, serve la pagina in cache. Nginx è in esecuzione, ma non supera mai il 2% di utilizzo della memoria. La CPU rimane circa al 95% inattiva.

Cosa sto sbagliando? Potrei avere configurato erroneamente nginx in qualche modo? Il mio file di configurazione principale è incollato sotto; l'inclusione specifica di questo sito è praticamente una copia carbone della configurazione di esempio su Static Generator home page. Sto usando Ubuntu 9.10 su una slice Slicehost 256k.

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/*; 
} 

risposta

3

Non sono un esperto in questo caso. Ma se la CPU è inattiva e anche la memoria non è il collo di bottiglia, mi viene in mente l'hard disk. Forse è molto lento e la cattiva velocità è un suggerimento di un disco rigido rotto.

È necessario eseguire alcuni semplici benchmark.

1

Da dove stai facendo il test? Un altro server nello stesso datacenter o la connessione Internet di casa/lavoro? Sarà difficile testare in modo affidabile le prestazioni del tuo sito dalla tua connessione di casa. Per uno, la connessione Internet potrebbe essere troppo lenta, e in secondo luogo, molti router personali non possono gestire molte connessioni simultanee.

Inoltre ... provare a eseguire il benchmark senza le immagini.

Problemi correlati