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