Subject: QUESTION ABOUT SOMAXCONN IN SYS/SOCKET.H FOR 1.0 AND 1.1
To: None <netbsd-help@NetBSD.ORG, tech-kern@NetBSD.ORG, buhrow@cats.ucsc.edu>
From: Brian Buhrow <buhrow@cats.ucsc.edu>
List: tech-kern
Date: 01/05/1996 07:38:19
	Hello fellow NetBSD users.  I've been looking over the recommendations given by
Sun for tuning up an http server.  (http://www.sun.com/ [Sun on the
Net]->[www performance tuning])
and I have some questions about the NetBSD tcp implementation, for both 1.0
and 1.1.  
	One of the important points that Prasad Wogle makes is that the backlog
parameter should be tunable to a size higher than 5, in order to prevent
users of the web service from seeing refused connections.  I see in the
NetBSD source, that SOMAXCONN (sys/socket.h) is set to 5 and that the only
place it is used in the 0.9A and 1.0 src trees is in
sys/kern/uipc_socket.c.  Assuming that these global structures are
dynamically allocated from memory, is there any reason why one cannot just
change SOMAXCONN to some arbitrarily high value to get the extra queue
size?  Will there be undocumented and hard-to-find gotyas which will pop up
when one performs this little trick?  I understand that one needs to
recompile the kernel to get this altered behavior, and that one should
probably put the altered sys/socket.h in the /usr/include on the build
machine so that the application and the kernel agree about what the maximum
queue size is?  Or, is this number really just a place holder in the source
and the real limit is determined by some other parameter which I didn't
find?
Any comments, suggestions, or real life experience with busy web servers
would be helpful.
-thanks
-Brian