ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: поиск ликов



19.05.2010 08:32, Igor Sysoev пишет:
On Wed, May 19, 2010 at 08:27:15AM +0300, Alex Antropoff wrote:

18.05.2010 22:10, Maxim Dounin пишет:
Hello!

On Tue, May 18, 2010 at 05:45:11PM +0300, Alex Antropoff wrote:

Добрый день, как правильно отлавливать в nginx лики ?

Предыстория - нужно было причесать доступ к видеокамерам, все разные,
отдают по http,  mjpeg/asf, урлы/пароли разные.

Соответственно родился простой вариант вида:
listen       12345;
proxy_buffering off;
# а тут генератором сделано
location /aaaa {
          proxy_pass   http://x.y.z.x:80/img/video.asf;
          proxy_set_header Authorization "Basic ...";
}
location /aaab {
          proxy_pass   http://x.y.z.y:80/mjpg/video.mjpg;
          proxy_set_header Authorization "Basic ...";
}
...
и так много раз.

Проверял и на 0.7.65, и на 0.8.36/37.
Сторонних модулей нет.

Раз в несколько дней возникает ситуация, при которой worker-ы
отъедают все, что только можно, причем постепенно.
Прогнал valgrind-ом - после выхода все чисто.
Как правильно выяснить, на что ушли те 500-600Mb в worker ?
Есть подозрение, что связано с бредовой отдачей mjpeg.

При proxy_buffering off; и отсутствии Content-Length в ответе
бекенда (т.е. если от nginx'а идёт chunked) - на каждый посылаемый
блок данных расходуется ~120 байт памяти.  Освобождается эта
память по окончании запроса.
Вот похоже оно и есть :-/
==32184== 66,920,960 bytes in 16,340 blocks are still reachable in loss
record 5 of 5
==32184==    at 0x4005863: memalign (vg_replace_malloc.c:332)
==32184==    by 0x40058E2: posix_memalign (vg_replace_malloc.c:384)
==32184==    by 0x805FF53: ngx_memalign (ngx_alloc.c:56)
==32184==    by 0x804D4C2: ngx_create_pool (ngx_palloc.c:20)
==32184==    by 0x805E631: ngx_event_accept (ngx_event_accept.c:99)
==32184==    by 0x8064E5B: ngx_epoll_process_events (ngx_epoll_module.c:642)
==32184==    by 0x805CEAB: ngx_process_events_and_timers (ngx_event.c:245)
==32184==    by 0x8062826: ngx_single_process_cycle
(ngx_process_cycle.c:306)
==32184==    by 0x804BCD2: main (nginx.c:393)

PS. если конфиг еще нужен - http://pastebin.com/hV4kFhQ8

Проблема в master_process off;


Как раз проблема вылезла в обычном режиме, valgrind без master_process off; ничего не находил.
В конфиге на котором обычно работает мастер включен.

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.