I've been poring over this Erlang crash dump where the VM has run out of heap memory. The problem is that there is no obvious culprit allocating all that memory.
Using some serious black awk
magic I've summed up the fields Stack+heap
, OldHeap
, Heap unused
and OldHeap unused
for each process and ranked them by memory usage. The problem is that this number doesn't come even close to the number that is representing the total memory for all the processes processes_used
according to the Erlang crash dump guide.
I've already tried the Crashdump Viewer and either I'm missing something or there isn't much help there for my kind of problem.
The number I get is 525 MB whereas the processes_used
value is at 1348 MB. Where can I find the rest of the memory?
Edit: The Heap unused
and OldHeap unused
shouldn't have been included since they are a sub-part of Stack+Heap
and OldHeap
, that plus the fact that the number displayed for Stack+Heap
and OldHeap
are listed as number of words, not bytes, was the problem.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…