<div dir="rtl"><div dir="ltr">Hi all,</div><div dir="ltr"><br></div><div dir="ltr">I've reduced my scenario:</div><div dir="ltr">In the reduced scenario I have two nodes. On one node I have a process that generates messages and banging towards a process located on "destination" node.</div>
<div dir="ltr">The receiving process does nothing with the messages. No UDP activity at all.</div><div dir="ltr">The result is similar - ~150K messages per second throughput limitation.</div><div dir="ltr"><br></div><div dir="ltr">
Hope it simplifies the case.</div><div dir="ltr"><br></div><div dir="ltr">Please advice,</div><div dir="ltr">Thanks in advance.</div></div><div class="gmail_extra"><br><br><div class="gmail_quote"><div dir="ltr">2013/12/11 Valentin Micic <span dir="ltr"><<a href="mailto:valentin@pixie.co.za" target="_blank">valentin@pixie.co.za</a>></span></div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">> To remind you, when I'm moving the receiving machine - the throughput between the nodes is doubled. (which is still low, but it proves that the UDP sockets are not the bottleneck -<br>

<br>
Not sure what does "moving the receiving machine" mean and how does it prove that UDP sockets are not bottleneck.<br>
Care to elaborate?<br>
<br>
As for number of UDP sockets you're using: at some point you will face the curse of diminishing returns.<br>
In my view, assuming that you've written an ideal server (*) and have adequate receiving buffer sizes, a number of cooperating UDP sockets (e.g. sockets offering the same service) should not exceed the number of CPU's used by Erlang run-time (in other words number of Erlang schedulers).<br>

<br>
Could you share what kind of "socket activity" you're using with your server: {active, true}, {active, false} or {active, once}?<br>
<br>
<br>
V/<br>
<br>
(*) A server that has zero processing time.<br>
<br>
<br>
<br>
</blockquote></div><br></div>