Re: поиск ликов
Maxim Dounin
mdounin на mdounin.ru
Вт Май 18 23:10:45 MSD 2010
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 байт памяти. Освобождается эта
память по окончании запроса.
Можно попробовать увеличить proxy_buffer_size - если блоки от
бекендов достаточно большие (и дело действительно в вышеописанном
расходе памяти) - может стать получше.
Ну а вообще - debug log надо смотреть.
Maxim Dounin
Подробная информация о списке рассылки nginx-ru