【发布时间】:2011-09-30 18:15:23
【问题描述】:
我一直在仔细研究这个 Erlang 崩溃转储,其中 VM 已用完堆内存。问题是没有明显的罪魁祸首分配所有内存。
使用一些严肃的黑色awk 魔法我总结了每个进程的Stack+heap、OldHeap、Heap unused 和OldHeap unused 字段,并按内存使用情况对它们进行排名。问题在于,根据Erlang crash dump guide,这个数字甚至不接近代表所有进程processes_used 的总内存的数字。
我已经尝试过Crashdump Viewer,但要么我遗漏了一些东西,要么对于我的问题没有太多帮助。
我得到的数字是 525 MB,而 processes_used 的值是 1348 MB。我在哪里可以找到剩余的内存?
编辑:Heap unused 和 OldHeap unused 不应该被包括在内,因为它们是 Stack+Heap 和 OldHeap 的子部分,再加上为 Stack+Heap 和 @987654335 显示的数字@ 被列为字数,而不是字节数,这是问题所在。