nginx iptv http proxy - memory leaks
Dobrozhansky Sergey
mail.invisible на gmail.com
Чт Июн 17 08:57:14 MSD 2010
Добрый день.
Столкнулся с проблемой утечки памяти.
Имеется иптв сервер, раздающий поток по http.
OC:
- FreeBSD 7.3-RELEASE-p1 i386
- FreeBSD 8.0-RELEASE-p3 i386.
В сервер приходят мультикаст потоки, которые с помощью udpxy
перегоняются в http.
Nginx выступает в роли фронтенда.
За пару часов его работы он может забрать порядка гигабайта памяти.
2692 www 1 4 0 258M 244M kqread 5 5:59 3.37% nginx
2691 www 1 4 0 18484K 5124K kqread 2 4:25 0.00% nginx
2693 www 1 4 0 166M 151M kqread 4 3:34 0.00% nginx
2690 www 1 4 0 119M 105M kqread 0 3:09 0.00% nginx
Версии пробовались:
- nginx/0.8.41
- nginx/0.7.67
- nginx/0.7.66
Результат одинаковый.
Конфиг:
user www;
worker_processes 4;
events {
worker_connections 2048;
use kqueue;
}
http {
limit_zone one $binary_remote_addr 10m;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 5;
reset_timedout_connection on;
proxy_buffering off;
server_tokens off;
log_format main '$remote_addr - $remote_user
[$time_local] $status '
'"$request" $body_bytes_sent
"$http_referer" '
'"$http_user_agent" "http_x_forwarded_for"';
access_log /var/log/nginx.log main;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
server {
listen 4025;
server_name localhost;
limit_conn one 5;
access_log /var/log/nginx.log main;
if ($http_user_agent !~* (^MPlayer*|^VLC*|^NSPlayer*|^RealtekVOD*)) {
return 444;
}
location / {
proxy_pass http://127.0.0.1:4026/;
proxy_redirect off;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
allow 192.168.160.0/19;
allow 192.168.128.0/24;
deny all;
rewrite ^/watch/iptv2$ /watch/224.5.5.2:1234;
rewrite ^/watch/iptv3$ /watch/224.5.5.3:1234;
rewrite ^/watch/iptv4$ /watch/224.5.5.4:1234;
rewrite ^/watch/iptv5$ /watch/224.5.5.5:1234;
rewrite ^/watch/iptv6$ /watch/224.5.5.6:1234;
rewrite ^/watch/iptv7$ /watch/224.5.5.7:1234;
rewrite ^/watch/iptv8$ /watch/224.5.5.8:1234;
rewrite ^/watch/iptv9$ /watch/224.5.5.9:1234;
rewrite ^/watch/iptv10$ /watch/224.5.5.10:1234;
}
}
}
Подробная информация о списке рассылки nginx-ru