Скорость отдачи файла

Sergej Kandyla sk.paix at gmail.com
Thu Jun 5 16:50:10 MSD 2008


Валерий wrote:
> Здравствуйте.
>
> Возникла проблема. Есть сервер Core 2 Duo, 2GB, 1TB RAID0, Debian.
> Установлен nginx 0.6.31, PHP 5.2.6 FastCGI.
> Сервер используется для отдачи больших медиафайлов (1,5 - 8 ГБ),
> работает по следующей схеме: приходит запрос php скрипту, который в
> свою очередь через X-Accel-Redirect отдает файл.
>
> Канал 100Mbit, в среднем число одновременных подключений - 300, канал
> забит на 70-90%.
>
> Даже при небольшой нагрузке (меньше чем приведенные средние значения)
> файлы в один поток отдаются довольно медленно ~30-50кбайт/сек, если же
> качать в 5-8 потоков, то скорость увеличивается в разы.
>   

у меня было похожее...и многопотоковая скачка была быстрее за счет 
"вытеснения" других клиентов тянущих файлы в меньшее количество потоков.

Стоит убедитьтся, что тот канал, по которому  вы стягиваете файл в один 
или 10 потоков, не перегружен.


Извините за офф, а raid0 у вас для чего? данные гдето дублируются, я 
полагаю...


> Что можете посоветовать для решения проблемы с отдачей в один поток?
>
> Читал архив рассылки, но ничего конкретного не нашел.
>
> Конфиг следующий:
>
> user  www;
> worker_processes  5;
>
> error_log   /home/nginx-error.log notice;
>
> pid        /var/run/nginx.pid;
>
>
> events {
>     worker_connections  1024;
> }
>
>
> http {
>     include       mime.types;
>     default_type  application/octet-stream;
>
>     log_format  main  '$remote_addr - $remote_user [$time_local] $request '
>                       '"$status" $body_bytes_sent "$http_referer" '
>                       '"$http_user_agent" "$http_x_forwarded_for"';
>
>     access_log  /home/nginx-access.log  main;
>
>     sendfile        on;
>
>     keepalive_timeout  65;
>
>     include         koi-win;
>
>     gzip  off;
>
>     server {
>         listen       80;
>         server_name  some.ip;
>
>         location / {
>             root   /home/www;
>             index  index.php index.html index.htm;
>             autoindex  off;
>             rewrite "^/([0-9]{10})/([0-9a-f]{32})/([0-9a-z_]+\.[a-z0-9]{3})$" /out.php?time=$1&key=$2&get=$3 last;
>
>         location /some_path/ {
>            deny    all;
>         }
>
>         limit_except GET POST {
>              deny   all;
>            }
>
>         }
>
>         error_page   400 402 403 404 405 406 407 408 409 410 411 412 413 414 415 500 502 503 504 505   http://some.addr;
>
>         location ~ \.php$ {
>             root           /home/www;
>             fastcgi_pass   unix:/var/run/php.sock;
>             fastcgi_index  index.php;
>             fastcgi_param  SCRIPT_FILENAME  /home/www$fastcgi_script_name;
>             fastcgi_param  QUERY_STRING       $query_string;
>            fastcgi_param  REMOTE_ADDR        $remote_addr;
>
>            fastcgi_param  REQUEST_METHOD     $request_method;
>            fastcgi_param  CONTENT_TYPE       $content_type;
>            fastcgi_param  CONTENT_LENGTH     $content_length;
>
>            fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
>            fastcgi_param  REQUEST_URI        $request_uri;
>            fastcgi_param  DOCUMENT_URI       $document_uri;
>            fastcgi_param  DOCUMENT_ROOT      $document_root;
>            fastcgi_param  SERVER_PROTOCOL    $server_protocol;
>
>            fastcgi_param  GATEWAY_INTERFACE  CGI;
>            fastcgi_param  SERVER_SOFTWARE    nginx;
>
>            fastcgi_param  REMOTE_PORT        $remote_port;
>            fastcgi_param  SERVER_ADDR        $server_addr;
>            fastcgi_param  SERVER_PORT        $server_port;
>            fastcgi_param  SERVER_NAME        $server_name;
>
>            # PHP only, required if PHP was built with --enable-force-cgi-redirect
>            fastcgi_param  REDIRECT_STATUS    200;
>
>            fastcgi_intercept_errors on;
>         }
>
>     }
>
> }
>
>
>
>   


-- 
Best Wishes,
PAIX-UANIC | SK3929-RIPE






More information about the nginx-ru mailing list