Memory Pool

Valentin V. Bartenev vbart at
Wed Apr 9 10:24:35 UTC 2014

On Wednesday 09 April 2014 04:55:42 nginxsantos wrote:
> Nginx when it accepts a connection, it creates a memory pool for that
> connection (allocating from heap). After which further memory requirement
> for that connection will be allocated from that pool. This is good. 
> But, why don't we pre create the memory pools depending upon the number of
> connections and use that pool. In the current approach if some connections
> are coming up going down., we will be allocating and freeing to heap
> frequently.
> Can someone please clarify why this has been done like this?

System allocators are usually smart enough to not transform every malloc()
into syscall.

One of the main benefits provided by these pools is convenient memory
management for C program that allows to not care much about corresponding 
free() calls and memory leaks.

So usually every pool is attached to some object with a clear life cycle,
like a request or a connection.

  wbr, Valentin V. Bartenev

More information about the nginx mailing list