Mailing List Archive

Red Flag on backhand status When httpd process more then 1000
Dear backhand users,

First let me describe my server setting and configuration.
i have 3 Web server running Apache+PHP with backhand installed.

ServerA
|
|-eth0 10.10.10.1 -----> 203.xxx.xxx.1
|
|-eth1 10.10.10.2 -----> 203.xxx.xxx.2

ServerB
|
|-eth0 10.10.10.3 -----> 203.xxx.xxx.3
|
|-eth1 10.10.10.4 -----> 203.xxx.xxx.4

ServerB
|
|-eth0 10.10.10.5 -----> 203.xxx.xxx.5


$host www.mydomain.com
www.mydomain.com has address 203.xxx.xxx.1
www.mydomain.com has address 203.xxx.xxx.2
www.mydomain.com has address 203.xxx.xxx.3
www.mydomain.com has address 203.xxx.xxx.4
www.mydomain.com has address 203.xxx.xxx.5

Some of my apache.conf in all apache servers (same config)


Timeout 300
KeepAlive On
MaxKeepAliveRequests 45
KeepAliveTimeout 15
MinSpareServers 10
MaxSpareServers 20
StartServers 10
MaxClients 4000
MaxRequestsPerChild 100000



########### MOD_BACKHAND CONFIG ##########
<IfModule mod_backhand.c>
UnixSocketDir /var/lib/backhand
MulticastStats 10.10.10.255:4445,1
AcceptStats 10.10.10.0/24
BackhandSelfRedirect On
BackhandConnectionPools Off
# BackhandLogLevel +netall
# BackhandLogLevel +mbcsall
# BackhandLogLevel +dcsnall

</IfModule>

### Section 3: Virtual Hosts
#

NameVirtualHost *
<VirtualHost *>
ServerName www.mydomain.com
ServerAdmin admin@mydomain.com
DocumentRoot /www/central
DirectoryIndex index.html index.php

Alias /data/ "/www/user/data/"
<Directory "/www/user/data">
Backhand bySession
Backhand byAge
Options Indexes FollowSymLinks MultiViews
AllowOverride none
Order allow,deny
Allow from all
</Directory>
<VirtualHost>


* i will provide more if i have too
---------------

That i want to ask is , why i got red flag on my backhand status when
the httpd process reach more then 1000 (ex. 1030).
It's happen in all server.

My web content is session based.

Anyone can help me?


cheers,

Erwien Samantha Y
Red Flag on backhand status When httpd process more then 1000 [ In reply to ]
Erwien Samantha Y wrote:

>Timeout 300
>KeepAlive On
>
If you are running a big site, (which it sort of looks like) you
definitely don't want this. Most browsers leave a connection open as
long as they can to make subsequent requests on if you were to click on
link on the same site. That means that every request that comes in will
last 15+ seconds (15 is below in conf).

Say the average request takes 200ms to serve and the user takes 200ms to
make the request. 400ms/request. With keepalives on and only one
request (worse case) you get 15.4 s/request. Giving the setup the
benefit of the doubt, let's assume that the average page load
necessitate 19 subsequent requests and a kept alive session only
requires 100ms for the request to be made.

So, the children for non-keepalive setup take 20*(0.2+0.2) = one child
occupied for 8 seconds to service 20 requests.
This is 2.5 requests/second/child.

On the flip side, let's look at keepalives: (0.2+0.2) + 19*(0.1+0.2) +
15 = one child occupied for 21.1 seconds to service 20 requests.
This is .95 requests/second/child

Let's assume you really need 4000 children in your setup, that should
give something like 4000*.95 = 3800 r/s. If you were to turn off keep
alives you need 3800/2.5 = 1520 children.

These numbers are reall stabs in the dark (100ms and 200ms). To give a
more appropriate numbering, I would say the average "TCP/IP session" has
8 requests (were keepalives enabled). The 200/100 for making a request
isn't far off. But, let's drop the service time to 20ms because you
have your setup tuned well. This yields <0.5 r/s for keepalives and
>8.3 r/s for no keepalives. And your 4000 required Apache children
drops from 4000 to 240. :-D

Your numbers may obviously vary, but anyway you look at it, it is better.

>MaxKeepAliveRequests 45
>KeepAliveTimeout 15
>MinSpareServers 10
>MaxSpareServers 20
>StartServers 10
>MaxClients 4000
>
What are you serving that needs 4000 children? Images? I wouldn't use
mod_backhand for serving static images.

>########### MOD_BACKHAND CONFIG ##########
><IfModule mod_backhand.c>
> UnixSocketDir /var/lib/backhand
> MulticastStats 10.10.10.255:4445,1
> AcceptStats 10.10.10.0/24
>BackhandSelfRedirect On
>
You probably want to turn this off unless you have a specific need for
it. It doesn't seem that you require this.

>BackhandConnectionPools Off
>
>
>That i want to ask is , why i got red flag on my backhand status when
>the httpd process reach more then 1000 (ex. 1030).
>It's happen in all server.
>
>
>
mod_backhand uses select in the moderator. When means it can' support
more than 1024 sessions at a time if you are using connection pooling.
It appear (from the above line in your config) that you have connection
pooling turned off. When connection pooling is off, the moderator is no
longer responsible for making or managing connections, this limitation
doesn't apply.

I am not sure why it is marked red. If you machine is very very busy,
they you could be starving the moderator process and then it will not be
able to collect/distribute information. I would check the error
logfile, you might find something there.

--
Theo Schlossnagle
1024D/82844984/95FD 30F1 489E 4613 F22E 491A 7E88 364C 8284 4984
2047R/33131B65/71 F7 95 64 49 76 5D BA 3D 90 B9 9F BE 27 24 E7