У меня проблема, похожая на Изучение аварийных дампов Erlang - как учитывать всю память?, мое приложение аварийно завершилось с ошибкой eheap_alloc: Cannot allocate 34385784 bytes of memory (of type "old_heap")
, и я не могу понять, какой процесс вызвал это.
Согласно вкладке «Память» в средстве просмотра аварийного дампа, используемый процесс составляет 2153 МБ, 4 но когда я суммирую все Memory:
строки в erl_crash.dump
(которые в байтах, см. guide), результат составляет всего около 285 МБ. Старая куча была бы еще 62 МБ, но я думаю, что это включено в Memory:
. Откуда могло взяться остальное? Обычно приложение использует около 300 МБ памяти.
Также в верхней части файла дампа указано Calling Thread: scheduler:0
, но никакой дополнительной информации об этом нет. Есть только записи для scheduler:1
и scheduler:2
. Могут ли они быть вовлечены в это или другие процессы планировщика не связаны?