TCP stack throughput

Joel Reymont <>
Mon Jul 4 15:26:32 CEST 2005


Folks,

After having problems with the test harness for my poker server I  
decided to set up a simple test. Could someone please explain the  
results to me?

I'm on Mac OSX 10.4.1 and the number of descriptors per process (set  
with ulimit -n) is 10240. I'm also wondering what the results would  
be when running this test on your platforms.

The files are at http://wagerlabs.com/fac.erl and http:// 
wagerlabs.com/tcp_server.erl. The server is Joe's code with slightly  
different TCP settings.

I'm first launching the tcp server to handle factorial requests. I  
then launch, say, 100 clients very rapidly to calculate the  
factorial. Here, without further ado are the results of my test.

Try increasing the last parameter to 50 or 100 to see the number of  
refused connections go much higher.

c-fd82e055:~/work/code-dump joelr$ erl
Erlang (BEAM) emulator version 5.4.8 [source] [hipe] [threads:0]

Eshell V5.4.8  (abort with ^G)
1> fac:start(5000).
Starting a port server on 5000...
{ok,<0.33.0>}
2> fac:fac(localhost, 5000, 20, 20).
ok
#1: Calculating factorial(20)
#2: Calculating factorial(20)
#3: Calculating factorial(20)
#4: Calculating factorial(20)
#5: Calculating factorial(20)
#6: Calculating factorial(20)
#1: fac(20) = 2432902008176640000
#2: fac(20) = 2432902008176640000
#3: fac(20) = 2432902008176640000
#4: fac(20) = 2432902008176640000
#7: Calculating factorial(20)
#8: Calculating factorial(20)
#5: fac(20) = 2432902008176640000
#6: fac(20) = 2432902008176640000
#7: fac(20) = 2432902008176640000
#8: fac(20) = 2432902008176640000
#13: Calculating factorial(20)
#13: fac(20) = 2432902008176640000
#12: start_client: {error,econnreset}
#14: start_client: {error,econnreset}
#15: start_client: {error,econnreset}
#16: start_client: {error,econnreset}
#17: start_client: {error,econnreset}
#18: start_client: {error,econnreset}
#19: start_client: {error,econnreset}
#20: start_client: {error,econnreset}
#11: Calculating factorial(20)
#10: Calculating factorial(20)
#9: Calculating factorial(20)
#11: fac(20) = 2432902008176640000
#9: fac(20) = 2432902008176640000
#10: fac(20) = 2432902008176640000


--
http://wagerlabs.com/tech





More information about the erlang-questions mailing list