Discrepancy between process and memory information in crashdump
Anshul Mittal <[email protected]>
| Newsgroups | gmane.comp.lang.erlang.general |
|---|---|
| Message-ID | <CABz1FgbY08-aiLRGDtQmyaQW_FheDbWwL1kGNfy4_dv3ietydQ@mail.gmail.com> |
Hi, I have a prod BEAM running on OTP 22 . I recently saw a crash in prod, which generated a crash dump. The memory consumption of the process jumped rapidly from ~5G to ~40G within a matter of a couple of minutes. Slogan: eheap_alloc: Cannot allocate 6664208 bytes of memory (of type "old_heap"). System version: Erlang/OTP 22 [erts-10.7.1] [source-471fe20989] [64-bit] [smp:36:36] [ds:36:36:10] [async-threads:1] [frame-pointer] When I analyzed the crash dump in the crash dump viewer, it shows the following summary on the memory tab: Total: 50 GB Processes: 42 GB Processes Used: 42 GB System: 7728 MB ... However, when I sum the "Memory: " information from the individual process entries in the crash dump, it only adds up to ~3G . I do see some processes with "WARNING: This process has an incomplete heap. Some information might be missing. " However, from what I can tell from the code here: https://fburl.com/ye99sjs9 , this warning means that reference counted binaries are missing from the crash dump, and not the information about the process heap itself. The crashdump itself doesn't seem to be truncated (don't see any such message on the "General Information" tab in the viewer). What could explain the discrepancy here? Cheers, Anshul Mittal