[erlang-questions] long sender side delays when sending to an external node

Ulf Wiger <>
Mon Mar 1 11:40:24 CET 2010

Scott Lystig Fritchie wrote:
> Robby, have you seen my post to the list earlier this month about
> 'busy_dist_port' system events?  If the Erlang port representing the TCP
> port used for inter-node communication becomes "busy", then a process
> (any process) attempting to send a message through that port will be
> unscheduled by the scheduler and won't be rescheduled until the busy
> port is itself unblocked.
> That's one way it could happen, at least.  There may be others.

One thing that stuck in my mind from reading the "high-performance
tcp/ip stack"[1] paper from 2005, was that while the Linux
TCP stack was considerably more performant, it did a lousy job
of servicing the different connections fairly:

"A similar test was done with Linux, but opening only 500
connections. Linux showed no reduction in throughput with
those connections, but a few connections used all the available
bandwidth while the others did nothing. The Erlang
stack loses throughput but each of the connections gets the
same share of the bandwidth. The different schedulers used
probably explain this behaviour:" (pg 59)

[1] http://portal.acm.org/citation.cfm?id=1088372

I wonder if it is still true, and if it might have something
to do with this?

Ulf W
Ulf Wiger
CTO, Erlang Solutions Ltd, formerly Erlang Training & Consulting Ltd



Since January 1st 2010 Erlang Training and Consulting Ltd. has become ERLANG SOLUTIONS LTD.


More information about the erlang-questions mailing list