You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Ryan Bloom <rb...@raleigh.ibm.com> on 1999/06/30 15:07:04 UTC
MPM code not disabling nagle?
Okay, I must have missed something somewhere. I have just searched the
apache-2.0/mpm tree, and the only reference to TCP_NODELAY I can find, is
in test/test-writev.c. We have removed the disable_nagle call altogether,
and we do not set the socketopt inline. Everything I have read about
experienced about web servers, says that this option needs to be disabled.
In the 1.3 tree, we were disabling nagle twice, once when we created the
socket in the parent, and once in the child process. Now, we don't disable
nagle at all.
In the apr tree, Just for informational purposes, we removed the disable
nagle call from the child process. We were inheriting the socket, and all
of the socket options should have bee retained when the socket was dupped.
What am I missing?
Ryan
_______________________________________________________________________
Ryan Bloom rbb@raleigh.ibm.com
4205 S Miami Blvd
RTP, NC 27709 It's a beautiful sight to see good dancers
doing simple steps. It's a painful sight to
see beginners doing complicated patterns.
Re: MPM code not disabling nagle?
Posted by Dean Gaudet <dg...@arctic.org>.
On Wed, 30 Jun 1999, Dean Gaudet wrote:
> TCP options aren't inherited across an accept() (IP options are, TCP
> options aren't... dumb, but that's how it is). It's always been pointless
> to set it on the listening socket... I just never bothered pointing it
> out. So you need to add it back in your models...
aha, this appears to be the case for bsd stacks... but not for linux 2.0.x
or for solaris 2.6... on those it's worthwhile setting the option on the
parent, and you can save the syscall on each request. At the moment the
code just favours portability.
Dean
Re: MPM code not disabling nagle?
Posted by Dean Gaudet <dg...@arctic.org>.
On Wed, 30 Jun 1999, Ryan Bloom wrote:
> Okay, I must have missed something somewhere. I have just searched the
> apache-2.0/mpm tree, and the only reference to TCP_NODELAY I can find, is
> in test/test-writev.c. We have removed the disable_nagle call altogether,
> and we do not set the socketopt inline. Everything I have read about
> experienced about web servers, says that this option needs to be disabled.
>
> In the 1.3 tree, we were disabling nagle twice, once when we created the
> socket in the parent, and once in the child process. Now, we don't disable
> nagle at all.
>
> In the apr tree, Just for informational purposes, we removed the disable
> nagle call from the child process. We were inheriting the socket, and all
> of the socket options should have bee retained when the socket was dupped.
TCP options aren't inherited across an accept() (IP options are, TCP
options aren't... dumb, but that's how it is). It's always been pointless
to set it on the listening socket... I just never bothered pointing it
out. So you need to add it back in your models...
If you look in prefork.c you'll see it's disabling nagle.
Dean