медленная раздача файлов

deniswork at uzvik.kiev.ua deniswork at uzvik.kiev.ua
Sat Apr 7 16:07:10 MSD 2007


Здравствуйте, у меня пробелма с раздачей файлов
через nginx. Когда становится много одновременных коннектов, то
скорость становится очень маленькой, хотя если паралельно с этим
качать файлы по фтп или через другой веб-сервер, то скорость
нормальная (т.е. проблема видимо не в винтах и не в канале).
На сервере 2Гб ОЗУ, загрузка не превышает 60% (в основном МуСКЛ,
который крутится тут-же). Т.е дело видимо в неоптимальной настройкой
nginx для одновременной раздачи большого количества файлов.  На
сервере программный raid5 из 4х винтов SATA2 500Gb (16M cache) и linux
debian 3.1r5

/nginx_status

Active connections: 236
server accepts handled requests
 62349 62349 73522 
Reading: 11 Writing: 185 Waiting: 40

cat /usr/local/nginx/conf/nginx.conf


user www-data www-data;
worker_processes 10;

events {
  worker_connections 4096;
  use epoll;
}

http {
  include /usr/local/nginx/conf/mime.types;
  default_type application/octet-stream;
  access_log off;

  server_names_hash_max_size 64;
  server_names_hash_bucket_size 64;

  client_body_buffer_size 128k;
  client_body_temp_path /usr/local/nginx/client_body_temp;
  client_header_buffer_size 2k;

  client_header_timeout 3m;
  client_body_timeout   3m;
  send_timeout          3m;

  output_buffers        4 512k;
  postpone_output       1460;


  client_max_body_size 1m;
  keepalive_timeout 65;
  large_client_header_buffers 2 4k;
  sendfile on;
  tcp_nodelay on;
  tcp_nopush on;

  proxy_buffer_size 2k;
  proxy_buffering on;
  proxy_buffers 32 8k;
  proxy_intercept_errors off;
  proxy_redirect off;
  proxy_connect_timeout 2;
  proxy_read_timeout 120;
  proxy_send_timeout 30;
  proxy_temp_path /usr/local/nginx/proxy_temp;
  #proxy_max_temp_file_size  0;

  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header Host $host;
  proxy_set_header Connection close;

  limit_zone   one  $rem_file 5m ;
  log_format  main '$remote_addr - - [$time_local] [$bytes_sent] "$request" $status';


    server {
        listen       192.168.0.3:80;
        server_name  192.168.0.3;

        error_page   503  /50x.html;
        location = /50x.html {
            root   /usr/local/nginx/html;
        }


        access_log      /var/log/upload_access.log main;
        location / {
            root   html;
            index  index.html index.htm;

            proxy_pass         http://192.168.0.2:80/;
            proxy_redirect     off;

            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

            client_max_body_size       10m;
            client_body_buffer_size    128k;

            proxy_connect_timeout      90;
            proxy_send_timeout         90;
            proxy_read_timeout         90;

            proxy_buffer_size          2k;
            proxy_buffers              4 32k;
            proxy_busy_buffers_size    64k;
            proxy_temp_file_write_size 64k;

        }

        location /upload {
            root /home/esc/daemon;
            limit_conn   one  1;
            set   $rem_file   $binary_remote_addr$uri;

        }
        location /nginx_status {
            stub_status on;
            access_log   off;
            allow all;
        }
    }
}








More information about the nginx-ru mailing list