1) What do you get for cat   /proc/sys/net/ipv4/ip_local_port_range ?  
2) Does the TPS decreases over time? Or is it consistent for long time? 
3) Ab does report how many requests used keep alive connection. Check if that value is significant. ab uses HTTP 1.0, not sure if ATS supports keep-alive for http 1.0 connections. 


On Fri, Apr 13, 2012 at 1:53 PM, Jorge Román Novalbos <jroman@linux-it.es> wrote:
The ATS is not going back to the server, but i have a lot of TIME_WAIT connections between ATS and "ab client machine", around 3600 TIME_WAIT connection of 4000.

Any clue?

On 13/04/2012, at 09:28, Rohit Karlupia wrote:

Can you verify that ATS is not going back to your servers?
Check netstat output on ATS machine?
 - You should only have connections from client to ATS.
 - Do you see connections in TIME_WAIT?  How many?


On Fri, Apr 13, 2012 at 12:47 PM, Jorge Román Novalbos <jroman@linux-it.es> wrote:
Hi,  thank for your answer!!

1) I have tried with -k too, and i have timeouts too.

2)I don't think that was the problem because I get the same timeout from different clients from internet. anyway I have 10G internet conexion.

3) The ATS server load is very low during the test, never overcome 1. The request never reach the origin servers because ATS is caching the object, therefore the req per seconds should be much more high.
4) I have the same problem with statics objects. My origin servers never could handle 10000 req/s, therefore I'm interesting in ATS.
5) Sure!

I don't know, but I think it's a problem (or setting) of the SO tcp/ip stack.

Any other idea??? 

On 13/04/2012, at 08:34, Rohit Karlupia wrote:

Multiple things can go wrong..;)

1) You can use -k option with ab to keep the client connections alive. That should be helpful.
2) Divide the total bytes transferred by duration of the test to see if you are close to bandwidth limits. (100Mbps or 1Gbps) 
3) Are you maxing out on cpu on ATS or the application server machine? ATS is a proxy. It will only add to latency. If the backend server is exhausted, you probably need to put more servers and load balance them using ATS to get your desired numbers.
4) php is process based. What is behind ATS ? Apache? How many processes? 
5) Are you using caching on ATS? 


On Fri, Apr 13, 2012 at 1:48 AM, Jorge Román Novalbos <jroman@linux-it.es> wrote:
Hi everyone!!

I'm configuring a new ATS machine that it gonna server a lot request per second (around 10000).

I have done several benchmark with ab from different machine to achieve more concurrence but I can't get more than 3000 request per second.

I have set several params in order to improve the performance:

echo "1" > /proc/sys/net/ipv4/tcp_tw_recycle
echo "1" > /proc/sys/net/ipv4/tcp_tw_reuse
echo "10" > /proc/sys/net/ipv4/tcp_fin_timeout

echo "10240" > /proc/sys/net/core/somaxconn

Besides, I have increased max open file allowed for nobody user to 16384 (User that run ATS)

In the client side always get the same error :

apr_socket_recv: Connection timed out (110)

This is the ab command:

ab -c 600 -t 60 ''"

I have increased the limit to 5000 in client side too.

Anybody knows how i can retrieve more concurrence in my server??????

Thanks in advance!!!