Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re[2]: nginx для отдачи больших файлов
Поставил worker_processes 10; возможно, ситуация немного улучшилась, но
задержки все равно есть.
Если можно, объясните принцип, по которому нужно подбирать worker_processes и
worker_connections.
И что делать со скачками скорости? когда отдавал файлы апачем, скорость всегда
была высокая, а теперь она скачет туда-сюда. Сначала обычно начинает с
небольшой скоростью отдавать, потом постепенно увеличивается. Может снова
упасть. Может, какие буферы нада покрутить? я с nginx знаком неделю, поэтому
еще слабо понимаю, как он работает.
> worker_processes 1; - маловато. В зависимости от нагрузки увеличивать,
> если все воркеры на диске начинают лочиться. Это скорее всего решит
> Вашу первую проблему.
>
> L> Здравствуйте.
> L> Система FreeBSD 7, 4 Гб RAM.
> L> nginx нужно использовать для отправки файлов самого разного размера: от
> 2-3 кб до 2-3 гб.
> L> Пытался подобрать оптимальный конфиг, но не очень получается.
> L> Вот, что у меня на данный момент:
>
>
> L> user www www;
> L> worker_processes 1;
>
> L> worker_rlimit_nofile 10240;
> L> worker_rlimit_sigpending 32768;
> L> worker_priority 5;
>
> L> error_log /.../nginx_error_log info;
>
> L> events {
> L> worker_connections 20480;
> L> use kqueue;
> L> }
>
> L> http {
> L> default_type application/octet-stream;
>
> L> log_format main
> L> '$remote_addr - $remote_user [$time_local] '
> L> '"$request" $status $bytes_sent '
> L> '"$http_referer" "$http_user_agent" '
> L> '"$gzip_ratio"';
>
>
>
> L> access_log /.../nginx_access_log main;
>
>
>
>
> L> client_header_timeout 60;
> L> client_body_timeout 60;
> L> send_timeout 120;
> L> proxy_read_timeout 180;
> L> proxy_connect_timeout 60;
> L> proxy_send_timeout 180;
>
>
> L> msie_padding on;
>
> L> proxy_buffer_size 32k;
>
> L> proxy_buffers 64 512k;
> L> proxy_busy_buffers_size 1024k;
> L> proxy_temp_file_write_size 1024k;
>
> L> gzip on;
> L> gzip_min_length 10240;
> L> gzip_buffers 32 64k;
> L> gzip_types text/html application/x-javascript text/css text/xml
> L> text/plain;
>
> L> client_header_buffer_size 4k;
> L> client_max_body_size 120000000;
> L> large_client_header_buffers 16 8k;
>
> L> sendfile on;
> L> tcp_nopush on;
> L> tcp_nodelay on;
>
> L> output_buffers 32 256k;
> L> postpone_output 1460;
>
> L> lingering_time 30;
> L> lingering_timeout 6;
> L> reset_timedout_connection on;
>
> L> keepalive_timeout 20;
> L> optimize_server_names on;
>
> L> index index.html;
>
> L> server {
> L> listen ххх.ххх.ххх.ххх:80;
> L> server_name ххх;
> L> location / {
>
> L> proxy_pass http://127.0.0.1:81/;
> L> proxy_redirect off;
> L> proxy_set_header Host $host;
> L> proxy_set_header X-Real-IP $remote_addr;
> L> }
> L> }
> L> }
>
>
> L> Но проблемы следующие:
> L> - большие паузы перед отдачей файла (сразу после старта сервера
> L> отдает сразу же, через некоторое время начинаются приличные паузы).
> L> - непонятная скорость отдачи файлов. файлы отдаются рывками,
> L> скорость иногда запредельно низкая (10-15 Кб/с, когда нормальная
> L> 300-500 Кб/с).
>
> L> Какие настройки нужно менять и где крутить?
> L> Спасибо!
|