This repository has been archived by the owner on Sep 27, 2023. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Changing memory allocation settings for binaries
Changing the allocator strategy for binary_alloc to do aobf rather than bf (+MBas aobf). Depending on how all of the binaries are allocated, this could make new allocations favor the same carrier. This will only add a small cpu overhead when allocating new binaries. This could however worsen our utilization even more if we are unlucky, it will however make allocations faster and more in the same area in the expected case, which should reduce fragmentation and untraceable leaks. We're also decreasing the size of our mbcs. Right now we have smbcs set to 256 kb and lmbcs at 5 MB (rounded up to 8MB as ERTS only allocates multiples of 2) and an average multi-block carrier size of 7.78 MB. We try to set +MBlmbcs 512 so that we get many more carriers and thus increase the chance that it can be returned to the OS. These two options have been recommended by members of the Erlang/OTP team to reduce the passive memory leaks due to allocation patterns compared to our peculiar use cases for log messages.
- Loading branch information