我一直在研究这个Erlang崩溃转储,其中VM已经耗尽堆内存.问题是没有明显的罪魁祸首分配所有内存.
使用一些严重的黑awk魔法我已经总结出来的领域Stack+heap,OldHeap,Heap unused并OldHeap unused为每个进程和内存使用率名列其中.问题是processes_used根据Erlang崩溃转储指南,这个数字甚至没有接近代表所有进程总内存的数字.
我已经尝试过Crashdump Viewer,或者我错过了一些东西,或者对我的问题没什么帮助.
我得到的数字是525 MB,而processes_used值是1348 MB.我在哪里可以找到其余的记忆?
编辑:Heap unused并且OldHeap unused不应该包含它,因为它们是和的子部分,Stack+Heap并且OldHeap加上显示的数字Stack+Heap和OldHeap被列为单词数而不是字节的事实是问题所在.
有一个名为crashdump_viewer的模块,非常适合这类分析.
要记住的另一件事是Heap + Stack是单词,而不是字节,这意味着你必须将Heap + Stack与32位上的4和64位上的8相乘.无法在手册中找到这方面的参考,但是过程谈论了一下.
| 归档时间: |
|
| 查看次数: |
2331 次 |
| 最近记录: |