Erlang:{error,timeout}在同一台机器上启动第14个从站时

时间:2013-03-22 14:14:06

标签: erlang

启动奴隶时遇到以下行为:

aura:/home/xtomast1>$ erl -rsh ssh -sname root_worker
Erlang R14B04 (erts-5.8.5) [source] [64-bit] [smp:64:64] [rq:64] [async-threads:0] [kernel-poll:false]

Eshell V5.8.5  (abort with ^G)
(root_worker@aura)1> slave:start(localhost, 1).
{ok,'1@localhost'}
(root_worker@aura)2> slave:start(localhost, 2).
{ok,'2@localhost'}
(root_worker@aura)3> slave:start(localhost, 3).
{ok,'3@localhost'}
(root_worker@aura)4> slave:start(localhost, 4).
{ok,'4@localhost'}
(root_worker@aura)5> slave:start(localhost, 5).
{ok,'5@localhost'}
(root_worker@aura)6> slave:start(localhost, 6).
{ok,'6@localhost'}
(root_worker@aura)7> slave:start(localhost, 7).
{ok,'7@localhost'}
(root_worker@aura)8> slave:start(localhost, 8).
{ok,'8@localhost'}
(root_worker@aura)9> slave:start(localhost, 9).
{ok,'9@localhost'}
(root_worker@aura)10> slave:start(localhost, 10).
{ok,'10@localhost'}
(root_worker@aura)11> slave:start(localhost, 11).
{ok,'11@localhost'}
(root_worker@aura)12> slave:start(localhost, 12).
{ok,'12@localhost'}
(root_worker@aura)13> slave:start(localhost, 13).
{ok,'13@localhost'}
(root_worker@aura)14> slave:start(localhost, 14).
{error,timeout}

我怀疑这是一个与ssh相关的问题,所以我尝试使用this answer中提供的方法进行故障排除,但是the obtained log显示第14次身份验证尝试成功,就像前13次一样。< / p>

现在我不知道下一步该尝试什么。我对Erlang几乎一无所知,我在上面的交互式shell会话中提到的这个问题,在运行我真正需要工作的某个Erlang程序时也表现出来 - 所以任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:1)

我怀疑它已连接到max user processes限制,每个从属节点似乎在我的测试中使用了3个操作系统进程。如果您对用户进程的限制较低或已经启动太多,则可能会导致类似您的错误。

您没有指定尝试使用的操作系统,但我认为它与Unix相似。

要查看当前限制设置类型

ulimit -a

在shell。

列出所有流程可能也很有趣。由于您的Erlang报告了64个Smp-Cores,因此它需要启动64个调度程序线程。我在我的操作系统上看不到这一点,但也许你可能会开始对线程进行限制。如果每个从属设备也启动了64个线程,那么你就会有很多线程运行。