[erlang-questions] Erlang garbage collection
Mon Oct 27 09:46:45 CET 2014
On Sat, Oct 25, 2014 at 8:37 PM, Viacheslav V. Kovalev <kovyl2404@REDACTED>
> I've noticed, that heap of processes in dockerized nodes are hogging up to
> 3 times much more RAM, than
> heaps in non-dockerized nodes with identical load. I suspect that garbage
> collection in non-dockerized nodes is more aggressive.
How did you measure that the heap of the processes was three times larger?
> Unfortunately, I don't have any garbage collection statistics, but I wanna
> obtain it ASAP.
> To give more information, I should say that we are using HiPE R17.1 on
> ubuntu 14.04 with stock kernel. In both schemes we are
> running 8 schedulers per node, and using default `fullsweep_after` flag.
> My blind suggestion is that erlang default garbage collection relies
> (somehow) on /proc/meminfo (which is not actual in dockerized environment).
The garbage collector does very little to react to the environment it is
in, so this setting should not influence how it works.
I am not C-guy and not familar with emulator internals, so could someone
> point me to places in erlang sources that are responsible for garbage
> and some emulator options which I can use to tweak this behavior?
The garbage collector is not very tweakable at all in Erlang. The only
settings you can play with is min_heap_size and fullsweep_after. However,
as Dmitry mentions, the erlang memory allocators do have a load of options
that can be tweaked, and depending on what the root cause of the memory
issue is, changing them could be effective.
For more info about how the memory allocators work and what you can do to
change their setting see the links Dmitry posted, and also I would
recommend reading what Fred Hebert has written about them here
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the erlang-questions