httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeroen Geilman <jer...@adaptr.nl>
Subject Re: [users@httpd] httpd choking (503 errors) when stressing mod_proxy
Date Wed, 17 Nov 2010 21:35:22 GMT
On 11/17/2010 10:23 PM, Ahmed Bakir wrote:
> Thanks for the responses!
>
> @jeroen:
>
> - There is no bandwidth difference between the connections. Both the 
> client and the host are either running on the same machine or on the 
> same LAN (I have tested on both and see the problem in both cases)
> - I have increased TCP receiver buffers, and that has alleviated the 
> problem but it's not a feasible solution for my application.

Because ?

> - I am running httpd on Windows (I have tried both Windows 7 and 
> Windows XP)

Ugh.
Fugly TCP stack.

> - These are my MPM details:
>
> Timeout 300
> MaxKeepAliveRequests 100
> KeepAliveTimeout 15
>

For a reverse proxy with heavy load, DISABLE keepalives. COMPLETELY.
They don't serve any useful purpose, and may in fact slow things down.

You won't observe the issues when testing from one client, because that 
one client will re-use its connections.

However, this does not work in the real world - proxy connections are 
fire-and-forget as far as the server is concerned.

Keepalive under heavy load contributes to what you are seeing - service 
unavailable.

> <IfModule mpm_winnt.c>
> ThreadsPerChild 250
> MaxRequestsPerChild  0
> </IfModule>
>
> - I have configured my reverse proxy using rewrite rules with the [P] 
> directive
>
> This is an example:
>
> RewriteRule ^files/(.*)$ http://localhost:16/$1  [P]

Yeah... that means you can't regulate the proxy pool size and other 
settings.
I'd reconsider using rewriterules when you don't really know why you're 
using them.
A proper FilesMatch or Proxy block will do just fine:

<Proxy /files/*>
     ProxyPass http://localhost:16/ min=100 max=250 smax=100 acquire=1000ms
</Proxy>

For example; I am by no means an expert on proxy configuration, but 
this  I could infer from the documentation in a few minutes.

You need to match the number of backend threads to your expected or - 
better - observed connections.

> - I did not set any ProxyPass options in my config.

Perhaps you should!

-- 
J.



---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Mime
View raw message