Exploring Erlang Crash Dumps - How To Explain All Memory?

I reviewed this Erlang crash dump where VM ran out of heap memory. The problem is that there is no obvious culprit allocating all this memory.

Using awk serious black magic, I summarized the Stack+heap , OldHeap , Heap unused and OldHeap unused for each process and estimated them by memory usage. The problem is that this number does not approach the number that represents the common memory for all processes_used processes_used according to the Erlang crash dump guide .

I already tried Crashdump Viewer and either I missed something or there is no help there for my problem.

The number I get is 525 MB, while the processes_used value is 1348 MB. Where can I find the rest of the memory?

Edit: Heap unused and OldHeap unused should not have been included, as they are part of Stack+heap and OldHeap , which is plus the fact that the number displayed for Stack+heap and OldHeap listed as the number of words, not bytes. There was a problem.

+3
source share
1 answer

There is a module called crashdump_viewer that is great for these types of analysis.

Another thing to keep in mind is that Heap + Stack is afaik in words, not bytes, which would mean that you need to multiply Heap + Stack from 4 by 32 and 8 by 64 bits. It is not possible to find a link in the manual for this, but Processes talk a little about it.

+6
source

Source: https://habr.com/ru/post/918150/


All Articles