Hi Ruediger,

On Apr 2, 2006, at 22:54, Ruediger Pluem wrote:
On 04/02/2006 04:46 PM, Bjørn Stabell wrote:
    <VirtualHost *:80>
ProxyPass /zope http://192.168.0.242:7680/ max=2 timeout=1 acquire=1 ttl=1
    </VirtualHost>

I'm using mpm-worker, both machines are Linux machines.

I thought Apache would make no more than 2 connections to the backend
server, but lsof on the backend server shows something else:

The cache limit is per httpd process. How many httpd processes are running?
What mpm are you using?
Can you check if there are really more than 2 connections per httpd process
on the frontend?

    # lsof -i :7680 | wc -l
    121

Are you sure that all of these connections are established? Could you also check
netstat -an | egrep ":7680.*ESTABLISHED"?

I'm running mpm-worker with config:

<IfModule mpm_worker_module>
    StartServers          2
    MaxClients           128
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadsPerChild      64
    MaxRequestsPerChild   0
</IfModule>


# /nb/apache-2.2/bin/httpd -l
Compiled in modules:
  core.c
  worker.c
  http_core.c
  mod_so.c


This should give 2 processes, each with 64 threads, right? At the peak, 64 connections are established with the backend:

# netstat -an | egrep ":7680.*ESTABLISHED" | wc -l
64


Btw, since the number of processes is rather indirect with the advent of mpm-worker, and since most people would be most interested in limiting the total number of connections to the backend (to spare the backend), wouldn't it make more sense to limit the total number?

Btw2, it wasn't very clear from the docs at http://httpd.apache.org/ docs/2.2/mod/mod_proxy.html that they were per-process maximums. I think most people will read "Apache will never create more than the Hard Maximum or max connections to the backend server." as meaning max across all processes and threads.

Rgds,
Bjorn

Reply via email to