小编Ale*_*exP的帖子

Erlang"系统"内存部分不断增长

我有一个具有以下模式的应用程序:

  • 2个长时间运行的进程在一些空闲时间后进入休眠状态,并且它们的内存消耗按预期下降
  • N(0 <N <100)个工作进程在闲置超过10秒时执行某些工作和休眠,或者在闲置超过两个小时时终止
  • 在夜间,当没有活动时,进程内存恢复到与应用程序启动时几乎相同的值,这是因为所有工作人员已经死亡.

问题是"系统"部分不断增长(约1GB /周).

我的问题是如何调试存储在那里的内容或谁在该区域分配内存并且不释放它.

我已经测试过list:keysearch/3并且它似乎没有泄漏内存,因为这是我使用的唯一本机内容(没有端口,没有驱动程序,没有NIF,没有BIF,没有).Erlang版本是R15B03.

这是当前的erlang:memory()输出(轻微的流量,应用程序从2月03日开始):

[{total,378865650},
{processes,100727351},
{processes_used,100489511},
{system,278138299},
{atom,1123505},
{atom_used,1106100},
{binary,4493504},
{code,7960564},
{ets,489944},
{maximum,402598426}]
Run Code Online (Sandbox Code Playgroud)

这是一个64位系统.正如您所看到的,"系统"部分大约有270MB,"进程"大约为100MB(夜间降至约16MB).

debugging erlang memory-leaks

7
推荐指数
1
解决办法
1172
查看次数

标签 统计

debugging ×1

erlang ×1

memory-leaks ×1