Скорость отдачи файла
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