recon_alloc:memory(已分配)比os分配的内存小得多

时间:2019-04-01 14:04:36

标签: erlang system

> 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 个答案:

答案 0 :(得分:1)

我写了https://www.erlang-in-anger.com/recon一起解释了其中的一些内容。它全部是免费的,并且几乎包含了此问题所需的一切。您将要查看第7章(内存泄漏),尤其是有关内存碎片的7.3节。

本质上,您可以查看recon_memory中的其他函数,以了解哪种类型的分配器在针对各种块大小的分配中使用率较低,然后使用分配策略进行优化。

相关问题