[erlang-questions] Erlang under high TCP/IP load
Mon Dec 11 11:38:18 CET 2006
I've been experimenting with ejabberd and Tsung. The setup consisted of two
Erlang nodes on old PCs (Low spec) being bombarded with requests from a
stationary machine and a laptop (Both of a good spec). By finetuning the
parameters passed to the emulator (IO threads, Kernel Poll, etc), I managed
to get a throughput increase of about 30%.
At this point, the CPU usage was about 70% when the errors started occuring,
and slowing down the connection rate resulted in a higher number of
simultaneously users. The slave node on another machine helped bring up the
load, but still hitting a limit before the machine hit 100% CPU usage. It
looks like the system resources TCP/IP stack is the bottleneck, as the
system resources were maxed out.
I am wondering about the following:
* Is there an easy way to see how much of the network overhead is caused by
the distributed Mnesia and how much is caused by the test clients?
* Is there a preferred OS on which I can run clustered Erlang Nodes under
heavy TCP/IP traffic, with thousands of socket connections open? If so, what
parameters should be finetuned? Free BSD with a kernel poll flag has been
suggested, but the person had no first hand experience.
I emailed the ejabberd mailing list, but got no helpful response. As this is
not an IM specific domain, hopefully someone on the list can give me some
Express yourself instantly with MSN Messenger! Download today it's FREE!
More information about the erlang-questions