3

スレーブを起動すると、次の動作が発生します。

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関連の問題だと思ったので、この回答の方法でトラブルシューティングを試みましたが、得られたログには、最初の13回と同じように14回目の認証が成功したことが示されています。

今、私は次に何を試すべきかわかりません。私はErlangについてほとんど何も知りません。インタラクティブなシェルセッションで上に示したこの問題は、私が本当に作業する必要のある特定のErlangプログラムを実行しているときにも現れます。したがって、助けていただければ幸いです。

4

1 に答える 1

1

制限に接続されているとmax user processes思われます。テストでは、各スレーブ ノードが 3 つのオペレーティング システム プロセスを使用しているようです。ユーザープロセスの制限が低い場合、またはすでに開始しているプロセスが多すぎる場合、これはあなたのようなエラーにつながる可能性があります。

これを試しているオペレーティング システムは特定されませんでしたが、おそらく Unix に似ていると思います。

現在の制限設定を確認するには、次のように入力します

ulimit -a

シェルで。

また、すべてのプロセスをリストすることも興味深いかもしれません。Erlang は 64 個の Smp-Core を報告しているため、64 個のスケジューラ スレッドを開始する必要があります。私のOSではこれを確認できませんが、開始できるスレッドに制限さえあるかもしれません。すべてのスレーブも 64 個のスレッドを開始する場合、かなりの数のスレッドが実行されます。

于 2013-03-26T16:42:10.083 に答える