Затыкается отдача статики
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