【发布时间】:2012-06-18 01:56:00
【问题描述】:
在对我的 erlang 服务器进行负载测试时,使用 +P(最大并发进程数)增加进程数(100、200、3000,...),并让 10 个进程向其余进程发送 1 条消息在创建的进程中,我在 erlang 控制台上收到一条消息:
“故障转储已写入:erl_crash.dump。eheap_alloc:无法分配 298930300 字节的内存(类型为“old_heap”)。异常终止”。
我使用的是 Windows XP。当我创建进程(它正在工作)时没有问题。崩溃发生在进程开始通信(发送 hi 和接收 hello)之后,这是我唯一遇到的问题(顺便说一下,+hms 设置了进程的默认堆大小)。
我该如何解决这个问题?
【问题讨论】:
-
有多少进程最终触发了该错误消息?
-
你需要查看
crash_dump文件,一般写在崩溃的erlang vm的当前工作目录中 -
如果您的应用程序无法减少产生的进程数量或产生它们的速度,请将消息更改为
binary,这样可以减少内存消耗。
标签: erlang