[erlang-bugs] Inter-nodes connection bottle-neck

Evgeniy Khramtsov <>
Mon May 16 10:45:11 CEST 2011

We are facing a problem where inter-node connection becomes a 
bottle-neck when there are too much traffic between nodes. In such 
situation we have lots of processes stuck in erlang:send. Since 
erlang:send_nosuspend is not an option we tried other solutions:
1) Set +zdbbl emulator option. No success.
2) Patched erl_port_task.c so a port with ERTS_PORT_SFLG_DISTRIBUTION 
flag set is inserted in a head of ErtsRunQueue in enqueue_port(). Alas, 
this doesn't help as well.
3) Implemented multiple links between 2 nodes. This works very good and 
we get rid of the bottle-neck, especially when lots of connections are 
established (20 and more). However, the patch is pretty complex: it 
envolves improvements in net_kernel.erl, erl_node_table.c, dist.c and so 
on. Also, as for me, the solution looks a bit ugly.

Any ideas what could be done yet?

Evgeniy Khramtsov, ProcessOne.

More information about the erlang-bugs mailing list