About cleanup of subrequests

Chieu lfchieu at gmail.com
Wed Nov 17 11:33:37 MSK 2010


To agentzh,

I had read your lua, echo module.

I think the location.capture of lua module, and echo_location_async of
echo module may cause this problem, too

For example:

  location /main {
      echo_reset_timer;

      # subrequests in parallel
      echo_location_async /sub1;
      echo_location_async /sub2;
     ...
      echo_location_async /subn;

      echo "took $echo_timer_elapsed sec for total.";
  }

If there are many "echo_location_async /subX", echo subrequest will
occupy some memory. Lots of memory will not be free in time.
So,if  /main is requested a lot , the system memory will be run out.

Am I right? And what's your opinion?

Thanks

2010/11/17 Chieu <lfchieu at gmail.com>:
> HI,ALL
>
> I have written a nginx module which may produce thousands of
> subrequests.Each subrequest may connect to the upstream and fetch
> data.
> Like map-reduce, my module map the main request to many subrequest and
> reduce the datas fetched from upstreams.
>
> So,the problem comes.  Since nginx free the memory when the main
> request ends, all my subrequest can't be cleaned up until the main
> request finished.
> The memory that subrequests occupied will become very large.
>
> Can somebody tell me how can free the memory which subrequests applied
> when this subrequest finished?
>
> Thanks
>
> --
> Regards
> LF Chieu
>



More information about the nginx mailing list