<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">If you were using CloudI, each external
service is supervised with a configuration setting for MaxR and
MaxT in the same way it applies to a supervisor's one_for_one
child process. The external service OS process is forked from an
Erlang port called cloudi_os_spawn. To distribute the risk and
latency of creating the external service processes, a
cloudi_os_spawn OS process is created for each available OS CPU
based on the configured (via the Erlang VM) scheduler count (a
single cloudi_os_process is responsible for spawning all the
configured number of processes as separate OS processes, each with
a configured number of threads for parallel communication). The
only pipe communication with the external service processes is for
capturing the stderr/stdout streams unbuffered for central
logging. The service communication uses a single socket per
thread, due to a single instance of the CloudI API being created
per thread. That approach avoids the contention you have with a
single cnode socket for a single cnode. Using service request
timeouts for communication and TCP, allows liveness checking of
the external service without the net tick time that is required
for cnodes.<br>
<br>
So, while this may be slightly off-topic, the information may be
useful for the concerns you have mentioned. There is more
information at <a class="moz-txt-link-freetext" href="http://cloudi.org/faq.html#4_Erlang">http://cloudi.org/faq.html#4_Erlang</a><br>
<br>
On 12/02/2015 09:30 AM, Serge Aleynikov wrote:<br>
</div>
<blockquote
cite="mid:CANt451kR+t8x1dFkznAUh0+bLoUhGscfW3nbymXW4TpJ3DnVFA@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_default"
style="font-family:arial,helvetica,sans-serif">Erlexec has
been running in several production systems. Yet, I can't
claim that it's bug free as the application has
many non-trivial features and handles various edge cases. So
if you find an issue, patches are welcome.</div>
<div class="gmail_default"
style="font-family:arial,helvetica,sans-serif"><br>
</div>
<div class="gmail_default"
style="font-family:arial,helvetica,sans-serif">It may become a
bottleneck if you heavily rely on redirection of standard I/O
streams of spawned processes, in which case erlexec does the
I/O marshaling between file descriptors. If that's the case,
I suggest to redesign your application, so that it conveys I/O
to Erlang by some other means, freeing erlexec from the role
of being the "broker" and leaving it to do its main function -
process supervision.</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Tue, Dec 1, 2015 at 6:36 PM, Alberto
Rosso <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:flagg.abe@gmail.com" target="_blank">flagg.abe@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Hello guys,
<div> our erlang application is running several c nodes
and shell scripts, handled by erlexec. For some reason
i'm going to debug deeper, the port exec-port crashes
when decoding a string received from the erlang side.</div>
<div><br>
</div>
<div>This issue brought a couple of questions to light.</div>
<div>Isn't it bad to use exec-port as the unique gateway
for all of my c nodes? I mean, a single crash of the
exec-port frustrates the advantages of the supervision
tree we've designed to make the application robust to
hardware faults.</div>
<div>Another doubt is about the possibility for exec-port
to become a performance bottleneck of the whole
application, as the number of c nodes (and their
throughput from/to the erlang app) is growing.</div>
<div><br>
</div>
<div>Could be starting more than one instance of the exec
application, an (awful) solution?</div>
<div><br>
</div>
<div>Your thoughts are really appreciated.</div>
<span class="HOEnZb"><font color="#888888">
<div>-- <br>
<div>Alberto Rosso<br>
<span
style="color:rgb(0,0,102);font-family:tahoma,helvetica,arial,sans-serif;line-height:15px;font-size:x-small">save
a tree: please don't print this email unless
strictly necessary</span><br>
<div>
<div><font size="1"><font color="#333399"
face="tahoma, helvetica, arial,
sans-serif"><span style="line-height:15px"><br>
</span></font></font></div>
<div><font size="1"><font color="#333399"
face="tahoma, helvetica, arial,
sans-serif"><span style="line-height:15px">L'esperienza
e la filosofia che non generano
l'indulgenza e la caritą sono due
acquisti che non valgono quello che
costano. (Alexandre Dumas figlio)<br>
</span></font></font>
<div><span
style="font-family:tahoma,helvetica,arial,sans-serif;font-size:12px;line-height:15px"><font
color="#333399"><br>
</font></span></div>
</div>
</div>
</div>
</div>
</font></span></div>
<br>
_______________________________________________<br>
erlang-questions mailing list<br>
<a moz-do-not-send="true"
href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a moz-do-not-send="true"
href="http://erlang.org/mailman/listinfo/erlang-questions"
rel="noreferrer" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br>
</blockquote>
</div>
<br>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
erlang-questions mailing list
<a class="moz-txt-link-abbreviated" href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a>
<a class="moz-txt-link-freetext" href="http://erlang.org/mailman/listinfo/erlang-questions">http://erlang.org/mailman/listinfo/erlang-questions</a>
</pre>
</blockquote>
<br>
</body>
</html>