Erlang:节点完全冻结。怎么办?

时间:2012-07-31 18:32:53

标签: erlang

平台:windows 7 32bit,erlang R15B01。

我开发了一个同时监听200个不同tcp端口(200个gen_servers)的erlang服务器

在适度负载几分钟后(几个并行的客户端)整个节点完全冻结 - 即使外壳完全冻结。

这个问题如何得到诊断?对于那些问题,是否有标准的erlang方法? (内存消耗低,所以它不是某种内存泄漏)

重要编辑

似乎在 werl.exe 下没有这样的问题。仅在 erl.exe 下。可能与http://erlang.2086793.n4.nabble.com/erl-exe-dies-but-werl-exe-does-not-on-both-Windows-XP-and-2008R2-with-R14B01-td3335030.html

中的相同

2 个答案:

答案 0 :(得分:7)

如果您使用kill -SIGUSR1 <pid>终止进程,则erlang VM将在应用程序启动的目录中生成erlang崩溃转储文件erl_crash.dump

然后您可以使用crash dump viewer进行分析。

答案 1 :(得分:0)

冻结的erlang shell可能是由未捕获的退出信号引起的。您可以尝试在shell进程中捕获出口(假设它是您的服务器的父进程),它应该为您提供退出原因。见Reference manual on Errors