Re[2]: nginx для отдачи больших файлов

Lin shaman712 at inbox.ru
Mon Feb 23 18:44:28 MSK 2009


Поставил 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> Спасибо!







More information about the nginx-ru mailing list