<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>