recon_alloc: память (выделенная) намного меньше, чем память, выделенная из os - PullRequest
1 голос
/ 01 апреля 2019
> recon_alloc:memory(allocated).
49221632
> os:getpid().
"5656"
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                 
22443 root      20   0 5763100 1.345g   2964 S   1.1  8.7  96:59.10 beam.smp                                                
 5656 root      20   0 5253972 1.001g   4736 S   2.2  6.4  35:05.21 beam.smp  

Я обнаружил, что память, которую я вижу в erlang vm, намного меньше, чем память, выделенная из os, что означает, что у моего узла erlang есть утечка памяти.
Есть ли способ найти место, где памятьпроизошла утечка?

1 Ответ

1 голос
/ 01 апреля 2019

Я написал https://www.erlang -in-anger.com / , чтобы указать recon, чтобы объяснить некоторые из этих вещей.Это все бесплатно, и содержит в основном все, что вам нужно для этой проблемы.Вы захотите взглянуть на Главу 7 (Утечки памяти) и, в частности, на раздел 7.3, посвященный фрагментации памяти.

По сути, вы можете посмотреть на другие функции в recon_memory, чтобы узнать, какой тип распределителя видит более низкое использование в егораспределение для блоков различного размера, а затем поиграть со стратегиями распределения для оптимизации.

...