[erlang-questions] Optimising TCP/IP connectivity

Oscar Hellström oscar@REDACTED
Thu Jun 14 13:31:05 CEST 2007


Hi Anders,

There are actually two problems with FreeBSD.

1. kqueue is broken according to the OTP team [1], which means no kernel
poll
2. It crashed after a while under high load

On 1 I cant say much. I removed the restriction in the configure script
to try it out with kernel poll, and it worked on sockets. The problem
supposedly exists with pipes though.
Regarding 2, I examined the core dumps, and it looked like it was
related to the expat driver in Ejabberd. At least those function was on
the stack when the segmentation fault occurred. It *could* have
something to do with expat versions, port drivers etc. The Ejabberd
version has been 1.1.3 on all OS, so I doubt it should be there.

FreeBSD did show impressive results before it all went down, at least
with the forced kernel poll, so I was a bit disappointed when I had to
give up. The crash might however be application specific and not ERTS
specific.

Anders Trondheim wrote:
>
> Hi Oscar,Very interesting reading! I wish I had known you were working on this. I have been experimenting with an information push system using ejabberd, where the profile is a low traffic (with bursts) but lots of connections.  Can you expand on the problems with FreeBSD?  Even if outside the scope of the paper, did you investigate it? Hilsen,AndersOscar Hellström wrote:
>
>   Hi All,I've just finished my bachelor thesis titled "Optimising TCP/IP connectivity: An exploratory study in network-intensive Erlang systems".A number of operating systems, VM-options and TCP stack optimisations have been evaluated to be able to maintain as many concurrent connections as possible.The thesis can be found is online at http://www.erlang-consulting.com/aboutus/erlangarticles.htmlThe paper describes a series of benchmarks on a popular network-intense Erlang application. During these benchmarks asynchronous threads, kernel poll and TCP Window Sizes has been evaluated. The same benchmarks has also been run on several operating systems, on the exact same hardware. There are some interesting differences, both between he operating systems and within the same operating system but with other parameters used to start Erlang.Best Regards
>
>
>
> _________________________________________________________________
> Express yourself instantly with MSN Messenger! Download today it's FREE!
> http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
>   
> ------------------------------------------------------------------------
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://www.erlang.org/mailman/listinfo/erlang-questions
Best Regards
-- 
Oscar Hellström, oscar@REDACTED
Erlang Training and Consulting
http://www.erlang-consulting.com/



More information about the erlang-questions mailing list