Próbuję znaleźć poprawne strojenie dla nginx na serwerze AWS, który jest całkowicie wspierany przez EBS. Podstawową kwestią jest to, że pobierając plik statyczny o wielkości 100 MB, widzę stałe szybkości pobierania ~ 60K/s. Jeśli używam scp do kopiowania tego samego pliku z serwera AWS, widzę szybkości ~ 1MB/s. (Więc nie jestem pewien, czy EBS wchodzi tutaj w grę).duży plik statyczny nginx wyświetlający powolny na serwerze AWS z obsługą EBS
Początkowo uruchamiałem nginx z zasadniczo gotową konfiguracją (dla CentOS 6.x). Ale próbując przyspieszyć, grałem z różnymi parametrami strojenia, bez skutku - prędkość pozostała w zasadzie taka sama.
Oto odnośny fragment z mojego config jak to stoi w tej chwili:
location /download {
root /var/www/yada/update;
disable_symlinks off;
autoindex on;
# Transfer tuning follows
aio on;
directio 4m;
output_buffers 1 128k;
}
Początkowo te ustawienia dostrojenia były:
sendfile on;
tcp_nopush on;
tcp_nodelay on;
Uwaga, ja nie staram się zoptymalizować duży ruch. Najprawdopodobniej tylko jeden klient zostanie pobrany w danym momencie. Serwer AWS jest instancją "mikro" z 617 MB pamięci. Niezależnie od tego, że SCP może pobierać przy ~ 1MB/s, wierzę, że HTTP powinien być w stanie dopasować lub pokonać tę przepustowość.
Każda pomoc jest doceniana.
[Aktualizacja] Dodatkowe informacje. Uruchamiając komendę 'top', podczas gdy pobieranie działa, otrzymuję:
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
i 'iostat' pokazuje:
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
Czy znalazłeś [to podobne pytanie] (http://stackoverflow.com/questions/7395876/nginx-serving-static-large-file)? Z pewnością wygląda podobnie z CPU na 100%. – shamp00
Zrobiłem. Ale mój procesor jest całkowicie bezczynny. Ustawiłem teraz "sendfile off;" "aio on;" "directio 256k;" a moja przepustowość wynosi średnio ~ 130K/s. Lepsze, ale daleko od 1 MB/s. – brettw
Najpierw wyklucz niewidoczne stwory. Jeśli pobierasz na tym samym komputerze, najpierw przez localhost, a następnie za pośrednictwem jego oficjalnej nazwy hosta, w jaki więc sposób są to prędkości? – Melvyn