[erlang-questions] Help with allocator tuning

Max Lapshin max.lapshin@REDACTED
Wed Nov 23 13:47:56 CET 2016


I'm trying to get some idea about the proper way of configuring allocators.

We are running our erlang software flussonic, it captures around 1,5 gbit/s
of input via TCP, allocates lot of binaries from 500 bytes to 1500 bytes
and then prepares large binaries around 1 megabyte (video blobs). There are
produced around 250 such blobs per second.

When I launch erlang with:

+stbt db +sbwt short +swt very_low +sfwi 20 +zebwt short +sub true +MBas
aoffcaobf +MBacul 0

I get around 2000 mmaps and munmaps per second and recon_alloc tells that I
have 98% of usage.  It looks rather strange, so I tried to play with
tunings and switched to:

+stbt db +sbwt short +swt very_low +sfwi 20 +zebwt short +sub true +MBas
aoffcaobf +MBsbct 4096 +MBacul de +Mulmbcs 131071 +Mumbcgs 1 +Musmbcs 4095

I'm not quite sure that my settings are sane, but I tried to make very
large multiblock areas and try to store my binaries inside large areas (not
single block carrier, but multiblock carrier).

With these settings I get about 50 mmap/munmap per second. Seems that
hugepages are not used (frankly speaking I thought to autoenable them).

But with these settings I get about 50% of usage and all servers are
quickly getting killer by OOM killer.

With these flags I tried to hint allocator to create 128MB large areas and
objects smaller than 4 megabytes to put into there areas.

So my questions are:

1) should I worry about 2000 of mmap/unmap syscalls per second?

2) should I try to reduce usage of sbct and increase usage of mbct?

3) are my flags to erlang VM compatible with each other?

4) maybe some other hints?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20161123/fcaf46b2/attachment.htm>

More information about the erlang-questions mailing list