
jesus at omniti
Aug 9, 2002, 6:11 AM
Post #2 of 2
(899 views)
Permalink
|
|
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
|