You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Stipe Tolj <to...@wapme-systems.de> on 2001/10/28 02:06:21 UTC
Problems with Keep-Alive and still not exiting childs
Hi list,
this problem is Cygwin 1.x specific, but I'm ask the list for a hint
on where I can start figuring out what we have here:
On the Cygwin 1.x platform (running both 1.1.8-2 and 1.3.3-2) I have
the following effect. While running Apache the load is quite good
handled using the standard MaxServers MinServers and MaxSpareServers
settings. After a while I see from /server-status that ther are
keep-alive slots that seem to stay (as it seems forever). So the
scoreboard fills up in non-determinable intervals with "still"
keep-alive connections, even while the server is not responding to the
connctions.
My questions is what could be causing this? Isn't there a build in
timeout for Keep-Alive connections?! It is AFAIK, but why do they
stay? Any hint on how I can track this down?
For those who are interested:
The machine I'm seeing this (Win200 based, but same on NT4sp6) has an
Apache uptime of 14 days 16 hours, served 35816 hits and 2.9 GB
traffic (.0283 requests/sec - 2494 B/second - 86.2 kB/request). It has
currently 60 requests currently being processed (allmost all "K"), 2
idle servers.
Any help would be highly welcome.
Stipe
tolj@wapme-systems.de
-------------------------------------------------------------------
Wapme Systems AG
Münsterstr. 248
40470 Düsseldorf
Tel: +49-211-74845-0
Fax: +49-211-74845-299
E-Mail: info@wapme-systems.de
Internet: http://www.wapme-systems.de
-------------------------------------------------------------------
wapme.net - wherever you are
Re: Problems with Keep-Alive and still not exiting childs
Posted by "William A. Rowe, Jr." <wr...@covalent.net>.
From: "Stipe Tolj" <to...@wapme-systems.de>
Sent: Sunday, October 28, 2001 7:00 PM
> > Win32 doesn't use read/write, it uses send/recv. While the read/write
> > oftentimes works, it's less than effective on occasion.
> >
> > I suspect either the cygwin thunk is misbehaving, or we have compensated
> > in the server but the cygwin port doesn't pick up those exceptions. Grep
> > throughout the source for send/recv where we've #ifdef'ed Win32, consider
> > including CYGWIN in those exceptions and see what you observe.
>
> thanks a lot for the hint.
No problem, thought that would lick it. Next to fix cygwin itself, no :-?
> Attached is a patch that shows what I have changed in current CVS to
> make apache-1.3 run with Win32 API specific send/recv functions.
Cool.
> I have this apache-1.3.23-dev version running on apache.dev.wapme.net
> and will see how it behaves for the upcoming days. If it is considered
> better, I would suggest to include the patch to official CVS tree.
I didn't catch your follow-up endorsement, did you want this committed based
on your test results?
Re: Problems with Keep-Alive and still not exiting childs
Posted by Stipe Tolj <to...@wapme-systems.de>.
> Win32 doesn't use read/write, it uses send/recv. While the read/write
> oftentimes works, it's less than effective on occasion.
>
> I suspect either the cygwin thunk is misbehaving, or we have compensated
> in the server but the cygwin port doesn't pick up those exceptions. Grep
> throughout the source for send/recv where we've #ifdef'ed Win32, consider
> including CYGWIN in those exceptions and see what you observe.
thanks a lot for the hint.
Attached is a patch that shows what I have changed in current CVS to
make apache-1.3 run with Win32 API specific send/recv functions.
I have this apache-1.3.23-dev version running on apache.dev.wapme.net
and will see how it behaves for the upcoming days. If it is considered
better, I would suggest to include the patch to official CVS tree.
Here are the ChangeLog entries:
* src/Configuration.tmpl: added rule CYGWIN_WINSOCK which may be
used at configure time to indicate that we want Win32 API style
functions instead of POSIX.
* src/Configure: added necessary line for helpers/CutRule to fetch
CYGWIN_WINSOCK rule and an additional if statement to Cygwin's compile
flag block to include a seperate define CYGWIN_WINSOCK and the
required import library libwsock32.a.
* src/main/buff.c: added additional #ifdef ORs for CYGWIN_WINSOCK to
include Win32 API code.
* src/main/http_main.c: added additional #ifdef ORs for
CYGWIN_WINSOCK to include Win32 API code.
* src/os/cygwin/os.h: added necessary #define's and function
prototype declaration for Win32 API functions.
Stipe
tolj@wapme-systems.de
-------------------------------------------------------------------
Wapme Systems AG
Münsterstr. 248
40470 Düsseldorf
Tel: +49-211-74845-0
Fax: +49-211-74845-299
E-Mail: info@wapme-systems.de
Internet: http://www.wapme-systems.de
-------------------------------------------------------------------
wapme.net - wherever you are
Re: Problems with Keep-Alive and still not exiting childs
Posted by "William A. Rowe, Jr." <wr...@covalent.net>.
From: "Stipe Tolj" <to...@wapme-systems.de>
Sent: Saturday, October 27, 2001 7:06 PM
> this problem is Cygwin 1.x specific, but I'm ask the list for a hint
> on where I can start figuring out what we have here:
>
> On the Cygwin 1.x platform (running both 1.1.8-2 and 1.3.3-2) I have
> the following effect. While running Apache the load is quite good
> handled using the standard MaxServers MinServers and MaxSpareServers
> settings. After a while I see from /server-status that ther are
> keep-alive slots that seem to stay (as it seems forever). So the
> scoreboard fills up in non-determinable intervals with "still"
> keep-alive connections, even while the server is not responding to the
> connctions.
Win32 doesn't use read/write, it uses send/recv. While the read/write
oftentimes works, it's less than effective on occasion.
I suspect either the cygwin thunk is misbehaving, or we have compensated
in the server but the cygwin port doesn't pick up those exceptions. Grep
throughout the source for send/recv where we've #ifdef'ed Win32, consider
including CYGWIN in those exceptions and see what you observe.
Re: Problems with Keep-Alive and still not exiting childs
Posted by Stipe Tolj <to...@wapme-systems.de>.
The patch I produced to the current productive system
apache.dev.wapme.net seems to perform better than the Cygwin POSIX
socket communication approach, see
http://apache.dev.wapme.net/server-status.
I will observe this for some time more and report if we should commit
the patch to CVS.
Stipe
tolj@wapme-systems.de
-------------------------------------------------------------------
Wapme Systems AG
Münsterstr. 248
40470 Düsseldorf
Tel: +49-211-74845-0
Fax: +49-211-74845-299
E-Mail: info@wapme-systems.de
Internet: http://www.wapme-systems.de
-------------------------------------------------------------------
wapme.net - wherever you are