[erlang-questions] What is "Abandon carrier utilization limit" for?

Sverker Eriksson sverker.eriksson@REDACTED
Fri Oct 13 19:05:43 CEST 2017


There is actually an internal doc on this subject:

https://github.com/erlang/otp/blob/master/erts/emulator/internal_doc/CarrierMigration.md


On 10/13/2017 04:41 PM, Roger Lipscombe wrote:
> What does it mean for a carrier to be abandoned?
Blocks are not allocated from abandoned carrier.
An abandoned carrier is available to be employed by any thread in which 
case it's not abandoned anymore.

>
> The documentation says that if an allocator needs another carrier,
> it'll re-use an abandoned one, which doesn't sound very abandoned to
> me.
> Can the VM move blocks from an abandoned carrier to a new carrier? I
> assume not, which means that abandoned carriers can't (easily) be
> returned to the OS.
A carrier is a large contiguous piece of memory.
A block a smaller contiguous piece of memory within a carrier.
So no, moving block between carrier does not even make sense.


>
> Or is it that, once a carrier falls below the threshold, the VM tries
> not to use it, so that it's more likely (assuming that the remaining
> content eventually gets freed) that it'll get returned to the OS?
Yes, that is the idea.

> Also: what is the default setting? The documentation says "de", but
> system_info is saying "0" for all of my allocators. Is "de" choosing
> zero for me?
>
>
Hmm.... I'll be back...



More information about the erlang-questions mailing list