<div dir="rtl"><div dir="ltr">Hello,</div><div dir="ltr"><br></div><div dir="ltr">I'm facing a bottleneck issue between two nodes.</div><div dir="ltr">I have several nodes in my cluster, each on different machine.</div>
<div dir="ltr">Physical interface between the machines is 10G.</div><div dir="ltr">On one node I have about 100 processes receiving packets from UDP sockets (~200 sockets) and banging Erlang messages towards a registered process located on remote node (also remote machine).</div>
<div dir="ltr">In the reduced scenario the receiving process is a gen_server which does nothing with the messages - just counts the received messages (internal state counter, not a DB).</div><div dir="ltr">By checking this internal counter I can say that maximum rx rate of this process stands on ~150K messages per second and there is no messages waiting in its queue. </div>
<div dir="ltr">Increasing the transmitting node feed does not affect this number and finally the transmitting processes queues start to grow. </div><div dir="ltr"><div dir="ltr">Just to clarify that these 150K messages are about 120Mbps (over 10G line). Actually I expected to see about 1M.</div>
<div><br></div></div><div dir="ltr">When I'm running these both nodes on same machine - the maximum received messages rate grows to ~400K per second.</div><div dir="ltr"><br></div><div dir="ltr">I've tried to set port parallelism (+spp) flag, increase distribution buffer busy limit (+zdbbl), set kernel poll (+K) - no significant difference. </div>
<div dir="ltr"><br></div><div dir="ltr">Currently my conclusion is that the bottleneck is somewhere on transmit between nodes.<br></div><div dir="ltr"><br></div><div dir="ltr">Is there any flags/parameters that may affect this area?</div>
<div dir="ltr"><br></div><div dir="ltr">Any ideas, comments, help are more than welcomed :-)</div><div dir="ltr">Thanks,</div><div dir="ltr">Eli</div><div dir="ltr"><br></div></div>