平台: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
中的相同答案 0 :(得分:7)
如果您使用kill -SIGUSR1 <pid>
终止进程,则erlang VM将在应用程序启动的目录中生成erlang崩溃转储文件erl_crash.dump
。
然后您可以使用crash dump viewer进行分析。
答案 1 :(得分:0)
冻结的erlang shell可能是由未捕获的退出信号引起的。您可以尝试在shell进程中捕获出口(假设它是您的服务器的父进程),它应该为您提供退出原因。见Reference manual on Errors