httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rob Hartill <r...@imdb.com>
Subject Bugs regarding "SendBufferSize" (fwd)
Date Thu, 31 Jul 1997 11:15:07 GMT

not acked

---------- Forwarded message ----------
Date: Wed, 30 Jul 1997 21:55:15 -0700 (PDT)
From: "Philip A. Prindeville" <philipp@enteka.com>
To: apache-bugs@mail.apache.org
Subject: Bugs regarding "SendBufferSize"

Hi.

	After much head-scratching about really poor performance,
I went and added much debugging code to http_main.c and started to
look and the logging results.

	I was really surprised at what I found:  the listening
socket is created with a SO_SNDBUF (which is never used, since the
socket only listens) of whatever SendBufferSize is set to, but
any sockets that are returned from the accept() call in child_main()
have a SO_SNDBUF of 0!  This really surprised me.  I don't have
the kernel sources or the TCP module sources, but it seems to me
that:

	(a) if you call accept(), then the connection is already
	    open and the window size can't be changed...

	(b) accept() should pass any characteristics (ie. options
	    or parameters) to the "child" socket when it clones
	    the socket...

so why isn't the window size (send buffer size) that the listening
socket has being inherited?

	Am I missing something really obvious here?  It would be
nice to get the performance increase without having to having to
change global system parameters with 'ndd /dev/tcp tcp_xmit_hiwat
65536' or whatever.

	BTW:  I'm running Apache 1.2.0 with the Proxy module on
Solaris 2.5.1.  I've added a patch (which I will post as soon as
I figure out the above bug) to set the SO_RCVBUF on the connection
to the remote server being proxied.

	I'm not on the list so please copy me on the reply.

Thanks,

-Philip


Mime
View raw message