TCP stack throughput

Ulf Wiger (AL/EAB) <>
Mon Jul 4 16:08:08 CEST 2005


I ran the tests on Solaris and Windows 2000.

On Solaris, 20 clients went well. 50 triggered the 10 second
timeout in the client's connect() call. Increasing that timeout
to 30 secs, 50 clients went well, but the timeouts reappeared
when trying 100 clients. No connections refused, though.

On Win 2000, 20 clients went well, but with 50 clients, lots
of 'econnrefused'.

/Uffe

> -----Original Message-----
> From: 
> [mailto:]On Behalf Of Joel Reymont
> Sent: den 4 juli 2005 15:27
> To: Erlang Users' List
> Subject: TCP stack throughput
> 
> 
> 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