2011年3月9日星期三

Re: Question: http video streaming and nginx ram usage

Hello!

On Tue, Mar 08, 2011 at 12:15:23AM -0500, birdy wrote:

> I'm using Nginx to forward incoming http requests (from the Internet) to
> an Aviosys 9100A+ (low-cost) IP video server.

[...]

> As I wrote, In my setup, I reverse-proxy only the allowed URLs (i.e. the
> ones to "get the video") on to the video server with nginx. This works
> fine, but nginx seems to buffer the http data that it forwards locally.
> So while viewing the video stream, nginx consumes more and more RAM
> until the little linux device crashes.
>
> However, if I stop viewing the stream after 1 or 2 minutes, before RAM
> runs out, the memory gets freed again.
> I believe it frees the ram because the request is finished.

nginx frees (most of) memory allocated for request only when
request is finished, this is how it's expected to work.

Known issue with long-running requests is that chunked filter will
allocate some small amount of memory for each chunk send, and this
may grow big enough for long-running requests with "proxy_buffering"
set to "off".

Workaround is

chunked_transfer_encoding off;

as available in nginx 0.8.35+.

Maxim Dounin

p.s. As already pointed out, your config isn't correct. Location
directive can't be used to test query string arguments. This is
irrelevant though.

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

没有评论:

发表评论