Re: поиск ликов
Igor Sysoev
igor на sysoev.ru
Ср Май 19 11:59:02 MSD 2010
On Wed, May 19, 2010 at 10:35:38AM +0300, Alex Antropoff wrote:
> 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; ничего не находил.
> В конфиге на котором обычно работает мастер включен.
Вот это:
>> ==32184== by 0x8062826: ngx_single_process_cycle
говорит о том, что запуск был с "master_process off".
--
Игорь Сысоев
http://sysoev.ru
Подробная информация о списке рассылки nginx-ru