[erlang-bugs] Inter-nodes connection bottle-neck
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