Discussion:
[erlang-questions] Standard allocator memory leak
Lukas Larsson
2018-12-10 12:37:21 UTC
Permalink
Hello!
Hello. Does anybody can help me to debug std_alloc memory leak. Our
production elixir/erlang application now leak for about 200MB a day.
Recon shows that it is because of std_alloc. But standard allocator
contains a lot of different types of data, and I don't know how to start
debugging this problem. Any ideas? Any ways to inspect the erlang vm?
You can use the instrument module to get more information,
http://erlang.org/doc/man/instrument.html

Note that this module had a major overhaul in OTP-21.

Lukas
Gerhard Lazu
2018-12-10 12:44:15 UTC
Permalink
Some resources that helped team RabbitMQ with a similar question:

* Grafana BEAM Memory Allocators Dashboard
<https://github.com/deadtrickster/beam-dashboards>
* How can we increase multiblock carrier utilization for binary_alloc?
<http://erlang.org/pipermail/erlang-questions/2018-May/095327.html>
* Help us determine better Erlang VM memory management configuration
defaults for RabbitMQ
<https://groups.google.com/d/msg/rabbitmq-users/LSYaac9frYw/LNZDZUlrBAAJ>
* Use more optimal default memory allocators where available (Erlang 20.2.3
or later) <https://github.com/rabbitmq/rabbitmq-server/pull/1604>

OTP PR #2046 <https://github.com/erlang/otp/pull/2046> caught my attention
(thanks @essen!) - less helpful, but something worth keeping an eye on.

Hope this helps, Gerhard.

On Mon, Dec 10, 2018 at 12:20 PM Denis Kirichenko <
Hello. Does anybody can help me to debug std_alloc memory leak. Our
production elixir/erlang application now leak for about 200MB a day.
Recon shows that it is because of std_alloc. But standard allocator
contains a lot of different types of data, and I don't know how to start
debugging this problem. Any ideas? Any ways to inspect the erlang vm?
recon_alloc:memory(allocated_types).
[{binary_alloc,173309952},
{driver_alloc,2392064},
{eheap_alloc,256114688},
{ets_alloc,155713536},
{fix_alloc,7897088},
{ll_alloc,35913728},
{sl_alloc,294912},
{std_alloc,1883799552}, %<<< 1.8G
{temp_alloc,1179648}]
erlang:memory().
[{total,2098938448},
{processes,99837664},
{processes_used,99355784},
{system,1999100784}, %<<< 1.9G
{atom,842689},
{atom_used,828419},
{binary,41062080},
{code,15612969},
{ets,88859304}]
_______________________________________________
erlang-questions mailing list
http://erlang.org/mailman/listinfo/erlang-questions
Continue reading on narkive:
Loading...