Затыкается отдача статики

kozakd nginx-forum на nginx.us
Пт Ноя 27 11:58:34 MSK 2009


Пытаюсь добиться стабильной работы уже третий месяц. :(

На одном и том же сервере работает конверт загружаемого пользователями видео контента (совершенно разных форматов) и отдача статики (фотки) а также стриминг mp4.
Временный рабочий каталог для конвертации отдельно от массива.
Процессы ffmpeg запускаются с nice -n 10.
В логах ничего полезного по проблеме. А именно внезапно возникает (с периодичностью 1-2 часа) снижение производительности массива.
Отдача (трафик) падает в 3 раза.
Отпускает его, только после рестарта nginx'а.  :((

- CentOS release 5.4  
- x86_64
- 2.6.18-92.1.22.el5
- Софтовый RAID5 (Active Devices : 14,  Chunk Size : 256K) на 1ТБ дисках
- XFS


Параметры сборки: 0.7.64
--------------------------------------------------------------------
"./configure" \
"--prefix=/usr/local/nginx" \
"--without-http_ssi_module" \
"--without-http_userid_module" \
"--without-http_auth_basic_module" \
"--without-http_empty_gif_module" \
"--without-http_gzip_module" \
"--without-http_geo_module" \
"--without-http_fastcgi_module" \
"--without-mail_pop3_module" \
"--without-mail_imap_module" \
"--without-mail_smtp_module" \
"--with-http_stub_status_module" \
"--with-http_realip_module" \
"--with-http_flv_module" \
"--with-debug" \
"--add-module=nginx_mod_h264_streaming-2.2.5" \
"$@"


Конфиг:
--------------------------------------------------------------------
user  web;
worker_processes  8;

error_log  logs/error.log  info;

events {
    worker_connections  2000;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    
    server_tokens off;

    log_format  main  '$remote_addr - $remote_user [$time_local] '
                      '"$request" $status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent"';
    log_format  short '$request - $http_referer "$http_user_agent"';
 
    sendfile        on;
    keepalive_timeout  30 15;
    autoindex    off;

    server {
        listen       ***********:80;
        server_name  ***********;
        access_log  logs/farm-a-access.log  main;
 
        location / {
            root   /farm;
        }
         location ~ \.php$ {
            deny  all;
        }
    }
    
    server {
        listen       10.0.0.2:80;
        server_name  *************;
        location / {
            root   /farm;
        }
    }
    
    include  /usr/local/nginx/conf/VH/*.conf;
    
}


Конфиг виртуалхоста
--------------------------------------------------------------------
    server {
        listen       *************:80;
        server_name  **********;
        access_log  logs/flv-a.io.ua-access.log  main;
        error_log  logs/flv-a.io.ua-error.log  notice;
        limit_rate 2m;
        
        location ~ \.mp4&.* {                                                                       
            root   html/io.ua;
            rewrite   ^(.*)\.mp4&(.*)$  $1.mp4  permanent;
#           access_log  logs/mp4_addon.log  main;            
            mp4;                                                                                                             
            valid_referers      none blocked i.io.ua *.io.ua io.ua video.google.com;
            if ($invalid_referer) {                                                                                          
                rewrite   ^/   http://i.io.ua/img/leech.mp4 break;
            }
        }

        location ~ \.mp4 {
            root   html/io.ua; 
#           access_log  logs/mp4.log  main;
            mp4;
            valid_referers      none blocked i.io.ua *.io.ua io.ua video.google.com *.seeonline.com.ua;
            if ($invalid_referer) {                                                                                         
                #return   403;                                                                                              
                rewrite   ^/   http://i.io.ua/img/leech.mp4 break;                                                          
           }        
        }                                                                                                                    
        
        location ~ \.flv {                                                                       
            root   html/io.ua;                                                                                               
            flv;                                                                                                             
            valid_referers      none blocked i.io.ua *.io.ua io.ua video.google.com *.seeonline.com.ua;
            if ($invalid_referer) {                                                                                          
                #return   403;                                                                                                
                rewrite   ^/   http://i.io.ua/img/leech.mp4 break;
            }
        } 
        location / {                                                                                                         
            root html/io.ua/root;                                                                                            
            access_log  logs/flv-a.io.ua_root.log  main;
        } 
    }


Также есть второй похожий виртуалхост только для другого домена и с другими лимитами.
Пробовал объединять, чтобы исключить двойное использование "mp4;" - не помогло.

При старте:
--------------------------------------------------------------------
2009/11/27 09:03:03  1046#0: using the "epoll" event method                                                          
2009/11/27 09:03:03  1046#0: nginx/0.7.64                                                                            
2009/11/27 09:03:03  1046#0: built by gcc 4.1.2 20080704 (Red Hat 4.1.2-46)                                          
2009/11/27 09:03:03  1046#0: OS: Linux 2.6.18-92.1.22.el5                                                            
2009/11/27 09:03:03  1046#0: getrlimit(RLIMIT_NOFILE): 4096:4096                                                     
2009/11/27 09:03:03  1049#0: start worker processes                                                                  
2009/11/27 09:03:03  1049#0: start worker process 1050                                                               
2009/11/27 09:03:03  1049#0: start worker process 1051                                                               
2009/11/27 09:03:03  1049#0: start worker process 1052                                                               
2009/11/27 09:03:03  1049#0: start worker process 1053                                                               
2009/11/27 09:03:03  1049#0: start worker process 1054                                                               
2009/11/27 09:03:03  1049#0: start worker process 1055                                                               
2009/11/27 09:03:03  1049#0: start worker process 1056                                                               
2009/11/27 09:03:03  1049#0: start worker process 1057

Не редко в логах похожее:
--------------------------------------------------------------------
2009/11/27 09:06:25  1053#0: *1152 client closed prematurely connection while reading client request line, client: 61.1
70.148.86, server: farm-a.io.com.ua                                                                                          
2009/11/27 09:06:25  1053#0: *1192 client closed prematurely connection while reading client request line, client: 61.1
70.148.86, server: farm-a.io.com.ua                                                                                          
2009/11/27 09:06:25  1054#0: *1273 client closed prematurely connection while reading client request line, client: 61.1
70.148.86, server: farm-a.io.com.ua                                                                                          
2009/11/27 09:06:25  1053#0: *1151 client closed prematurely connection while reading client request line, client: 61.1
70.148.86, server: farm-a.io.com.ua                                                                                          
2009/11/27 09:06:25  1056#0: *1232 client closed prematurely connection while reading client request line, client: 61.1
70.148.86, server: farm-a.io.com.ua                                                                                          
2009/11/27 09:06:25  1053#0: *1153 client closed prematurely connection while reading client request line, client: 61.1
70.148.86, server: farm-a.io.com.ua

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,25907,25907#msg-25907




Подробная информация о списке рассылки nginx-ru