Archive for the 'Linux' Category

Benchmarking with Tsung

Wednesday, April 4th, 2007

At the moment I’m running a lot of benchmarks with Tsung. The funny thing with this is that I’ve had more problems getting the client machines to cope with the pressure than the server. I’m running two clients, which are hitting a server, trying to get as many active concurrent connections an possible. Not knowing too much about the inner workings of the Linux TCP/IP stack, I’ve so far run in to ENFILE and EADDRINUSE. The first was kinda expected and is solved by bumping up the allowed file descriptors for the Erlang process. The second however, var rather unexpected, since the clients do not bind to any port. It however turned out that the range of local ports available for non-privileged processes were way to narrow. This magic range is however easily changed with sysctl (net.ipv4.ip_local_port_range) or /proc/sys/net/ipv4/ip_local_port_range.

The server has so far suffered from too few file descriptors, but keeps up rather good :)