Your math is still off. ServerLimit x ThreadsPerChild  = 200 x 25 =
5000. This does not equal your MaxClients of 1000. Try a ServerLimit of
20 and ThreadsPerChild of 50.

 

If you're vmstat "r" column is high, chances are you're getting a lot of
requests. What's your apache requests/second? (check the apache
server-status webpage). That will also tell you what the incoming
connections are actually doing. Maybe you have EnableSendFile on and
your system doesn't support it. Maybe you have EnableMMAP on and your
system doesn't support it. Maybe you're pulling files over NFS over a
slow link?

Until you look at the server-status page, you won't know.

You should also run an strace on your apache processes to find out some
more information, see if there's a lot of extraneous calls or error in
there.

strace -f -F -v -p <an_apache_child_pid>

 

And you should still see what all these numbers look like with
keepalives off.

 

-Tony

---------------------------

Manager, IT Operations

Format Dynamics, Inc.

303-573-1800x27

abia...@formatdynamics.com <mailto:abia...@formatdynamics.com> 

http://www.formatdynamics.com <http://www.formatdynamics.com/> 

 

From: kulbir Saini [mailto:kulbir.sai...@gmail.com] 
Sent: Friday, March 13, 2009 9:08 PM
To: users@httpd.apache.org
Subject: Re: [us...@httpd] Apache Tunning

 

Hi All

Thanks.

I also agree lowering MaxRequestsPerChild will keep busy apache in
killing and recreating child process. I dont know what Math i worked, i
reconfigured both of the  apache  instances on the server with following
-

<IfModule worker.c>
ServerLimit         200
StartServers         2
MaxClients         1000
MinSpareThreads     75
MaxSpareThreads    250
ThreadsPerChild     25
MaxRequestsPerChild  20000
</IfModule>

KeepAliveTimeout 5

There was rise in load, teh system snapshot is -

[r...@cinschpr35 root]# top
  5:46pm  up 257 days,  7:09,  5 users,  load average: 5.70, 5.31, 5.15
614 processes: 606 sleeping, 8 running, 0 zombie, 0 stopped
CPU0 states: 98.2% user,  1.1% system,  0.0% nice,  0.1% idle
CPU1 states: 99.4% user,  0.0% system,  0.0% nice,  0.1% idle
CPU2 states: 99.4% user,  0.1% system,  0.0% nice,  0.0% idle
CPU3 states: 98.4% user,  1.0% system,  0.0% nice,  0.0% idle
Mem:  3927672K av, 3922000K used,    5672K free,    5196K shrd, 1363088K
buff
Swap: 1048536K av,     736K used, 1047800K free                 2112964K
cached

  PID      USER     PRI  NI  SIZE  RSS SHARE  STAT %CPU %MEM   TIME
COMMAND
32006  apache0   25   0   6796 6796  4092       R    99.8         0.1
213:21    httpd
 2306   apache0   25   0  6624 6624  4100       R    99.4         0.1
136:42    httpd
 2298 apache0   25   0  6624 6624  4100         R    97.2        0.1
135:39     httpd
 2308 apache0   25   0  6624 6624  4100          R    95.4         0.1
135:05     httpd
17059 tomcat1   15   0 82432  80M  9932        S     1.1           2.0
9:10         java
14678 tomcat0   15   0  101M 101M 31464      S     1.1          2.6
6:32       java
16228 root      15   0  1488 1488   836              R     1.1
0.0        0:00      top
19850 tomcat1   15   0 82432  80M  9932       S     0.9           2.0
6:16    java
 1110 tomcat0   15   0  101M 101M 31464       S     0.5         2.6
10:19    java
23605 tomcat0   15   0  101M 101M 31464      S     0.5           2.6
7:31     java

#free -m
             total       used       free     shared    buffers
cached
Mem:          3835       3828          7          5       1335
2059
-/+ buffers/cache:        433       3402
Swap:         1023          0       1023


  procs                      memory                      swap
io     system         cpu
 r  b  w   swpd   free      buff         cache      si  so    bi    bo
in    cs  us  sy  id
 5  0  1    736   8236 1367124 2108452   0   0     1    12    3     1
11   5  13
 4  0  0    736   8156 1367132 2108460   0   0     0   172  370   404
98   2   0
 4  0  1    736   8172 1367132 2108468   0   0     0     0  281   309
99   1   0
 4  0  1    736   8168 1367132 2108480   0   0     0   162  288   366
100   0   0
 5  0  1    736   8128 1367132 2108488   0   0     0     0  287   342
99   1   0
 4  0  1    736   8136 1367132 2108496   0   0     0   148  286   322
100   1   0
 5  0  1    736   8180 1367132 2108504   0   0     0     0  275   332
98   2   0
 4  0  2    736   8148 1367132 2108512   0   0     0    10  267   326
99   1   0
 4  0  1    736   8184 1367136 2108520   0   0     0   190  288   357
99   1   0
 4  0  0    736   8104 1367136 2108536   0   0     0    10  298   404
99   1   0
 4  0  2    736   7980 1367140 2108540   0   0     0   254  332   414
99   1   0
 4  0  0    736   7968 1367140 2108548   0   0     0    20  286   408
98   2   0
 5  0  1    736   7972 1367140 2108560   0   0     0     0  346   418
99   1   0
 4  0  1    736   7992 1367144 2108568   0   0     0   216  315   371
100   0   0
 5  0  0    736   8004 1367144 2108576   0   0     0     0  285   358
100   0   0
 5  0  0    736   7956 1367144 2108588   0   0     0   158  333   392
100   0   0
 6  0  2    736   7928 1367144 2108596   0   0     0     0  326   383
99   1   0
 6  0  2    736   8064 1367144 2108604   0   0     0     0  291   356
100   0   0
 4  0  0    736   8056 1367148 2108616   0   0     0   180  301   376
99   1   0
 4  0  1    736   8016 1367148 2108624   0   0     0    34  335   413
99   1   0


Above, i can see two things happened-

1> in "top" output teh httpd process eating CPU has high "TIME" value.
why?
2> the vmstat output value of "r" increases. Why?

Thanks in advance


Kulbir




On Fri, Mar 13, 2009 at 6:38 PM, Tadeu Alves <tadeu...@gmail.com> wrote:

i forget the other stuff i'm using moodle with some images werving with
eaccelerator running with php and i you want i can send a conf file
about mysql, php and apache if you would like to.

On Fri, Mar 13, 2009 at 2:45 PM, Anthony J. Biacco
<abia...@formatdynamics.com> wrote:

        1. I have to rail totally against this. The more you lower
MaxRequestsPerChild, the more often apache is killing and recreating a
child process. At numbers as low as 2000 or lower, you're starting to
defeat the whole purpose of using the worker mpm.

        >=50% of apache's time is going to be spent managing child
processes on a high traffic site. MaxRequestsPerChild should either be 0
or something very high. IF your process memory usage gets higher and
higher, then you have a memory leak somewhere.

        2. Don't use ThreadLimit, stick with ThreadsPerChild

        3. You MaxClients doesn't sync up to your other numbers.
MaxClients is going to be ServerLimit x ThreadsPerChild. So for you,
1500. If you want to serve 1500 concurrent reqs, then set MaxClients to
match this at 1500. If you want 500, then change
ServerLimit,StartServers and ThreadsPerChild so the math is right. For
instance, ServerLimit 10, StartServers 5, ThreadsPerChild 50 will be you
a MaxClients of 500.

        If you give us your server parameters (cpu, memory, modules
loaded, apache rss usage, types of files served), we'd be able to better
recommend numbers for what your server can support.

         

        -Tony

        ---------------------------

        Manager, IT Operations

        Format Dynamics, Inc.

        303-573-1800x27

        abia...@formatdynamics.com

        http://www.formatdynamics.com <http://www.formatdynamics.com/> 

         

        From: Tadeu Alves [mailto:tadeu...@gmail.com] 
        Sent: Friday, March 13, 2009 8:45 AM
        To: users@httpd.apache.org
        Subject: Re: [us...@httpd] Apache Tunning

         

        nice one. Getting on this hook, in my server we run moodle i
dunno if you guys know about it and a very high hits/second i wan't to
know if going down about MaxRequestsPerChild 500 will be good to
performance and any idea about changing my server variables to make it
support more concurrent connections

         

        ########################################

        <IfModule worker.c>
        ServerLimit          30
        ThreadLimit          70
        StartServers           20
        MaxClients            500
        MinSpareThreads        10
        MaxSpareThreads        15 
        ThreadsPerChild        50
        MaxRequestsPerChild  2000 
        MaxMemFree          5000
        #ReceiveBufferSize  714400 (not using anymore)

         

        #################################

        
        
         

        On Fri, Mar 13, 2009 at 5:41 AM, Gaurav Khambhala
<gau...@deeproot.co.in> wrote:

        Hi Kulbir, 

        
        
        Gaurav wrote:

        Tadeu Alves wrote:

        i thibk that you can down the variable
         MaxRequestsPerChild  20000 to 2000 it's too much and if the
child process keeps the request well i't grows bigger and bigger in
memory

        
        Even 2000 is too much. Various high load,high traffic servers
also don't have this much high value.

         

        Found this: http://rimuhosting.com/howto/memory.jsp may be
useful to you.
        
        
        
        
        -- 
        Cheers, 

        
        Gaurav Khambhala
        i-hack-at-DeepRoot Linux
        Getting GNU/Linux to work for you. Faster. Better. Today. Every
way.
        http://www.deeproot.in <http://www.deeproot.in/> , +91 80 4089
0000
        
        
        
---------------------------------------------------------------------
        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-unsubscr...@httpd.apache.org
         "   from the digest: users-digest-unsubscr...@httpd.apache.org
        For additional commands, e-mail: users-h...@httpd.apache.org

         

 

 

Reply via email to