Much larger old_heap than heap

Dan Gudmundsson dangud@REDACTED
Thu Mar 18 19:53:28 CET 2021


You said in the first mail, that you had done a garbage collect,
at least I assumed that you erlang:garbage_collect() which does a full
sweep,
and after that you should only have live data left?


On Thu, Mar 18, 2021 at 7:13 PM Loïc Hoguin <essen@REDACTED> wrote:

> Hello,
>
> I was able to dig deeper today. It's not that there was living data
> (first thing I checked of course). It's that the process was processing
> so much data that the old heap quickly gets full of no longer useful
> data. It sits long enough in memory to make it to old heap, but not very
> long in the grand scheme of things.
>
> Setting fullsweep_after to 0 reduces the heap size by 2-10 times
> depending on the current state size.
>
> Cheers,
>
> On 18/03/2021 18:56, Björn-Egil Dahlberg wrote:
> > Ehum?
> >
> > total_heap_size = heap_size + old_heap_size. Meaning 1st gen heap + 2nd
> > gen heap. So total_heap_size /should/ be equal, or more probable, higher
> > than the heap_size.
> >
> > The reason you don't see that it shrinks during a garbage collect is ofc
> > that there's still living data on the heap.
> >
> > Den ons 17 mars 2021 kl 21:53 skrev Loïc Hoguin <lhoguin@REDACTED
> > <mailto:lhoguin@REDACTED>>:
> >
> >     Hello,
> >
> >     I am trying to understand why the total_heap_size of a few processes
> >     is so much higher than heap_size. As can be seen in the following
> >     snippet, the old_heap is responsible for the discrepancy:
> >
> >      > erlang:process_info(QPid, garbage_collection_info).
> >     {garbage_collection_info,[{old_heap_block_size,1439468},
> >                                {heap_block_size,196650},
> >                                {mbuf_size,289},
> >                                {recent_size,11674},
> >                                {stack_size,35},
> >                                {old_heap_size,940791},
> >                                {heap_size,86028},
> >                                {bin_vheap_size,36483},
> >                                {bin_vheap_block_size,46422},
> >                                {bin_old_vheap_size,34148},
> >                                {bin_old_vheap_block_size,46422}]}
> >
> >     Why?
> >
> >     How can I reduce this? Garbage collecting does nothing.
> >
> >     Cheers,
> >
> >     --
> >     Loïc Hoguin
> >
>
> --
> Loïc Hoguin
> https://ninenines.eu
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20210318/a7bea31e/attachment.htm>


More information about the erlang-questions mailing list