Sto cercando di capire l'ottimizzazione corretta per nginx su un server AWS che è interamente supportato da EBS. Il problema di base è che quando si scarica un file statico di ~ 100 MB, vedo tassi di download costanti di ~ 60 K/s. Se utilizzo scp per copiare lo stesso file dal server AWS, visualizzo frequenze di ~ 1 MB/s. (Quindi, non sono sicuro che anche EBS entri in gioco qui).nginx file statico di grandi dimensioni che funziona lentamente su server AWS con supporto EBS
Inizialmente, eseguivo nginx praticamente con la configurazione predefinita (per CentOS 6.x). Ma nel tentativo di accelerare le cose, ho giocato con vari parametri di ottimizzazione senza alcun risultato - la velocità è rimasta sostanzialmente la stessa.
Ecco il frammento rilevante dal mio config così com'è in questo momento:
location /download {
root /var/www/yada/update;
disable_symlinks off;
autoindex on;
# Transfer tuning follows
aio on;
directio 4m;
output_buffers 1 128k;
}
Inizialmente, queste impostazioni di sintonizzazione sono stati:
sendfile on;
tcp_nopush on;
tcp_nodelay on;
Nota, non sto cercando di ottimizzare per una grande quantità di traffico. È probabile che solo un singolo client si scarichi in qualsiasi momento. Il server AWS è un'istanza "micro" con 617 MB di memoria. Indipendentemente da ciò, il fatto che scp possa scaricare a ~ 1 MB/s mi porta a credere che HTTP dovrebbe essere in grado di eguagliare o battere quel throughput.
Qualsiasi aiuto è apprezzato.
[Aggiornamento] Ulteriori informazioni. L'esecuzione di un comando di 'top', mentre un download è in esecuzione, ottengo:
top - 07:37:33 up 11 days, 1:56, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 63 total, 1 running, 62 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
e 'iostat' spettacoli:
Linux 3.2.38-5.48.amzn1.x86_64 04/03/2013 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.02 0.00 0.03 0.03 0.02 99.89
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
xvdap1 0.23 2.66 8.59 2544324 8224920
Hai trovato [questa domanda simile] (http://stackoverflow.com/questions/7395876/nginx-serving-static-large-file)? Sicuramente è simile alla CPU al 100%. – shamp00
L'ho fatto. Ma la mia CPU è completamente inattiva. Ora ho impostato 'sendfile off;' 'aio su;' 'directio 256k;' e il mio throughput è fino a ~ 130K/s in media. Meglio, ma molto lontano da 1 MB/s. – brettw
Prima escludi i servitori invisibili. Se scarichi sulla stessa macchina, prima tramite localhost poi tramite il suo nome host ufficiale, come vanno le velocità? – Melvyn