OOM errors are hard to debug. :observer and LiveDashboard may help, However, when **** happens, it usually happen quick enough that you don’t get the chance to observe clearly.
I can only offer a few high memory pitfalls that I have seen:
- Do you have process that do lot of work then idle for a long time? It may cause global binary not GC’ed soon enough. You can try to make those processes short-lived, or hibernate them.
- Do you read and parse largish files? You may try to use
:rawmode to open files and tune the read_ahead size. - Do you make a lot of sub-strings and keep them around for a long time? A sub binary will keep the original large binary from GC’ed. You can try to
:binary.copy/1them.






















