On Thu, 5 Feb 1998, Dancer wrote:
>
> Programs get started with a default 'heap'. That is, they get enough space to
> store global variables and whatnot, and a pool for malloc. That's their data
> segment. If you start mallocing chunks of memory, the heap will run out of space,
> and malloc() calls sbrk() to extend the size of the data segment to get more.
>
> They key thing here is that space allocated with sbrk() _cannot_ be given back to
> the operating system until the process _terminates_. Once your data-segment size
> has been increased, that's it. As long as your process runs, that memory is
> assigned to it, and it cannot be given to any other process. You can free() every
> byte, but you're still stuck with it.
Thanks for all the detail! I recompiled the kernel with a MAXDSIZ
parameter bumped up, and now Squid is running happily at 131MB of memory,
without crashing after passing the 128MB mark as it used to.
Thanks again...
-Mike Pelletier.
Received on Tue Feb 10 1998 - 08:03:31 MST
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:38:50 MST