10 May 2012:  Scalability of the Erlang VM and FreeBSD (reaching 2.5M+ concurrent connections/box)

Erlang Solutions - - May 10, 2012


They reduced the number of contentions in BEAM and tweaked OTP in order to improve its throughput.  Their suggestions for writing scalable Erlang programs include:  preferring os:timestamp to erlang:now and partitioning ets and mnesia tables in order to localise access to smaller number of processes. They reached 2.5M+ concurrent connections/box from an initial server load of ~200k connections. They found that Erlang has *awesome* SMP scalability,  as it can reach >85% CPU utilization across 24 logical CPU cores uniformly and the CPU utilization grows almost linearly with the number of connections.

They have published as open source all their changes here.  Some of their suggestions are now enabled by default (e.g. number of memory allocators being equal to the number of schedulers in the VM) but most of their changes are not included as they are system-specific.



Categories: Companies  Erlang Solutions