httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marc G. Fournier" <scra...@hub.org>
Subject Re: FreeBSD 4.x and Apache2: worker MPM issue
Date Mon, 01 Mar 2004 15:37:19 GMT
On Sun, 29 Feb 2004, Justin Erenkrantz wrote:

> --On Sunday, February 29, 2004 4:06 PM -0400 "Marc G. Fournier"
> <scrappy@hub.org> wrote:
>
> > k, if I'm understanding what you are saying, how do you test something
> > like that in a way that you can debug it?  What I'm reading is that if I
> > sent two queries (GET / and, say, GET /subdir), there is a chance that the
> > one that sent GET / will get the results for GET /subdir?
>
> No, that's not quite the problem.  It is:
>
> 1. Client requests GET /
> 2. *nothing happens*
> 3. Client (same or different) requests GET /subdir/
> 4. Server responds to GET / request issued in #1 (to the correct client)
> 5. *nothing happens*
> 6. Someone requests GET /subdir/foo/ issued in #3
> 7. Server responds to GET /subdir/ request
> 8. *nothing happens*
> ...repeat cycle...
>
> Does this make more sense?  The server won't respond to the first request
> until the second request is issued and so on.  We think it's a flaw in how
> libc_r implements the pthread condition variables.  But, again, it's been
> fixed with the thread library rewrites in 5.2.  -- justin

'k, this makes more sense ... but, is there no way to 'trigger' it to
debug?  As I said, I ran http_load at it, oh, wait, I wouldn't see the
problem with http_load, since, of course, its getting hit one after the
other, so masking it ... but, again, there has to be a trigger somewhere,
because results of http_load:

1981 fetches, 1017 max parallel, 2.99152e+06 bytes, in 30.0021 seconds
1510.11 mean bytes/connection
66.0286 fetches/sec, 99710.4 bytes/sec
msecs/connect: 1688.24 mean, 16187.5 max, 152.65 min
msecs/first-response: 1578.06 mean, 18004.3 max, 168.112 min
9 bad byte counts
HTTP response codes:
  code 200 -- 1972

so I've effectively 'pounded' the server, followed by a telnet session to
the same server doing a 'GET /' and it returned right away:

24.222.46.208 - - [01/Mar/2004:11:32:32 -0400] "GET / HTTP/1.0" 200 1517 "-" "http_load 04jan2002"
24.222.46.208 - - [01/Mar/2004:11:32:42 -0400] "GET /" 200 1517 "-" "-"

checking my server:

pluto# /usr/local/sbin/httpd -l
Compiled in modules:
  core.c
  worker.c
  http_core.c
  mod_so.c

I believe I'm compiled right ...

checking my backends, I seem to have alot more then I'm expecting to have:

pluto# ps auxl | grep 10231
root      10231  0.0  0.0  2296 1420  ??  Ss    4Feb04   3:47.82 /usr/local/sbin/     0 10231
    1   0   2  0  2296 1420 select Ss    ??    3:47.82 /usr/local/sbin/httpd
www       10265  0.0  0.0  2720 1784  ??  I     4Feb04   0:03.80 /usr/local/sbin/    80 10265
10231   0   2  0  2720 1784 accept I     ??    0:03.80 /usr/local/sbin/httpd
www       10266  0.0  0.0  2648 1724  ??  I     4Feb04   0:03.91 /usr/local/sbin/    80 10266
10231   0   2  0  2648 1724 accept I     ??    0:03.91 /usr/local/sbin/httpd
www       10267  0.0  0.0  2720 1780  ??  I     4Feb04   0:04.12 /usr/local/sbin/    80 10267
10231   0   2  0  2720 1780 accept I     ??    0:04.12 /usr/local/sbin/httpd
www       10268  0.0  0.0  2648 1736  ??  I     4Feb04   0:03.74 /usr/local/sbin/    80 10268
10231   0   2  0  2648 1736 accept I     ??    0:03.74 /usr/local/sbin/httpd
www       10269  0.0  0.0  2644 1760  ??  I     4Feb04   0:03.86 /usr/local/sbin/    80 10269
10231   0   2  0  2644 1760 accept I     ??    0:03.86 /usr/local/sbin/httpd
www       13919  0.0  0.0  2644 1756  ??  I     4Feb04   0:04.26 /usr/local/sbin/    80 13919
10231   0   2  0  2644 1756 accept I     ??    0:04.26 /usr/local/sbin/httpd
www       52484  0.0  0.0  2644 1728  ??  I     5Feb04   0:03.93 /usr/local/sbin/    80 52484
10231   0   2  0  2644 1728 accept I     ??    0:03.93 /usr/local/sbin/httpd
www       31428  0.0  0.0  2644 1748  ??  I     7Feb04   0:03.82 /usr/local/sbin/    80 31428
10231   0   2  0  2644 1748 accept I     ??    0:03.82 /usr/local/sbin/httpd
www       31452  0.0  0.0  2644 1740  ??  I     7Feb04   0:03.71 /usr/local/sbin/    80 31452
10231   0   2  0  2644 1740 accept I     ??    0:03.71 /usr/local/sbin/httpd
www       85079  0.0  0.0  2644 1732  ??  I    17Feb04   0:03.71 /usr/local/sbin/    80 85079
10231   0   2  0  2644 1732 accept I     ??    0:03.71 /usr/local/sbin/httpd
www       57616  0.0  0.0  2572 1736  ??  I    11:31AM   0:00.20 /usr/local/sbin/    80 57616
10231   0   2  0  2572 1736 accept I     ??    0:00.20 /usr/local/sbin/httpd
www       57619  0.0  0.0  2572 1736  ??  I    11:31AM   0:00.16 /usr/local/sbin/    80 57619
10231   0   2  0  2572 1736 accept I     ??    0:00.16 /usr/local/sbin/httpd
www       57620  0.0  0.0  2572 1736  ??  I    11:31AM   0:00.16 /usr/local/sbin/    80 57620
10231   0   2  0  2572 1736 accept I     ??    0:00.16 /usr/local/sbin/httpd
www       57627  0.0  0.0  2572 1736  ??  I    11:31AM   0:00.12 /usr/local/sbin/    80 57627
10231   0   2  0  2572 1736 accept I     ??    0:00.12 /usr/local/sbin/httpd
www       57628  0.0  0.0  2572 1736  ??  I    11:31AM   0:00.12 /usr/local/sbin/    80 57628
10231   0   2  0  2572 1736 accept I     ??    0:00.12 /usr/local/sbin/httpd
www       57629  0.0  0.0  2572 1736  ??  I    11:31AM   0:00.17 /usr/local/sbin/    80 57629
10231   0   2  0  2572 1736 accept I     ??    0:00.17 /usr/local/sbin/httpd
www       57630  0.0  0.0  2572 1736  ??  I    11:31AM   0:00.09 /usr/local/sbin/    80 57630
10231   0   2  0  2572 1736 accept I     ??    0:00.09 /usr/local/sbin/httpd
www       57636  0.0  0.0  2572 1736  ??  I    11:31AM   0:00.10 /usr/local/sbin/    80 57636
10231   0   2  0  2572 1736 accept I     ??    0:00.10 /usr/local/sbin/httpd
www       57637  0.0  0.0  2572 1736  ??  I    11:31AM   0:00.09 /usr/local/sbin/    80 57637
10231   0   2  0  2572 1736 accept I     ??    0:00.09 /usr/local/sbin/httpd
www       57638  0.0  0.0  2572 1736  ??  I    11:31AM   0:00.12 /usr/local/sbin/    80 57638
10231   0   2  0  2572 1736 accept I     ??    0:00.12 /usr/local/sbin/httpd
www       57639  0.0  0.0  2572 1736  ??  I    11:31AM   0:00.10 /usr/local/sbin/    80 57639
10231   0   2  0  2572 1736 accept I     ??    0:00.10 /usr/local/sbin/httpd
www       57640  0.0  0.0  2572 1736  ??  I    11:31AM   0:00.12 /usr/local/sbin/    80 57640
10231   0   2  0  2572 1736 accept I     ??    0:00.12 /usr/local/sbin/httpd

so am I mis-configuring something?  I'm running the default httpd.conf,
and the worker stuff is setup as:

<IfModule worker.c>
StartServers         2
MaxClients         150
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>

so I would have expected no more then 4 processes to be running, no?

I'm guessing that the MaxRequestsPerChild == 0 means unlimited?


----
Marc G. Fournier           Hub.Org Networking Services (http://www.hub.org)
Email: scrappy@hub.org           Yahoo!: yscrappy              ICQ: 7615664

Mime
View raw message