3

平台:windows 7 32bit,erlang R15B01。

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

经过几分钟的中等负载(少数客户端并行)后,整个节点完全冻结 - 甚至外壳也完全冻结。

如何诊断这个问题?是否有针对此类问题的标准 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

4

2 回答 2

7

If you kill your process with kill -SIGUSR1 <pid>, the erlang VM will generate a erlang crash dump file erl_crash.dump in the directory the app was started.

Then you can analyze it using the crash dump viewer.

于 2012-07-31T21:31:44.003 回答
0

冻结的 erlang shell 可能是由未捕获的退出信号引起的。您可以尝试在 shell 进程中捕获退出(假设它是服务器的父进程),这应该会给您退出原因。请参阅有关错误的参考手册

于 2012-08-02T10:32:18.993 回答