TCP listen queue in Solaris 2.4

TCP listen queue in Solaris 2.4

Post by Gary Mil » Mon, 23 Sep 1996 04:00:00

I'm running Solaris 2.4 on two busy machines, one a news server and the
other a mail server.  The kernel patch is 101945-39.  I'm reluctant to
upgrade to 101945-42 because it seems to have a few problems.  While I'm
waiting for the next revision, would it be a good idea to increase
tcp_conn_req_max from the default of 5 to the maximum of 32?  I'm not
aware of any connection problems with these machines, but I'm not sure
how these problems would appear.

-Gary Mills-    -Unix Support-    -U of M Academic Computing and Networking-


1. SOMAXCONN in listen() queue and Solaris 2.4

I'm running a very large web server on a completely dedicated SS 20/612
under Solaris 2.4.  I'm observing excellent (better than expected) CPU
performance, but as load increases, have run into what appears to be
a kernel bottleneck.  Specifically, as the number of simultaneous
connections increases, more and more of the socket connections either
time out without ever being accepted by the server,or hang for far too
long (5-60 seconds) before being accepted.  

What I believe is happening is that the backlog queue in listen() is
filling up whenever there are too many simultaneous requests that have
not yet been accept()ed.  I've confirmed independently that the
second listen parameter (backlog, the size of the queue on the listen
call) maxes out at 5, in contradiction to the man page.  I believe this
should be a kernel configuration option somewhere.

There is a #define SOMAXCONN 5 in sys/socket.h.

I've been led to believe that there's a way to reconfigure this maximum
in the kernel, probably through a set option in /etc/system.  Does anyone
know if this is the case, and what the variable might be?  I can't find
anything looking like a 'somaxconn' token in the symbol table in

On a related note, is there someplace a list of all the potential
/etc/system setable options?  The list in the back of the Performance
Admin manual seems decidedly incomplete...

--David Schairer
Technical Director, Internet Services
Concentric Research Corp.

2. reduce lock contention in try_to_free_buffers()

3. Is it possible to change the TCP Listen Queue Size in Solaris?

4. Senior Unix Admins 5748

5. changing TCP "listen queue" - how?

6. Win ME wants my Linux drive

7. Using NDD to increase TCP listen queue

8. Dump/restore 0.4b34 released

9. TCP listen queue sticking after SYN attack patch

10. TCP socket listen queue

11. Increasing TCP listen queue in ODT5

12. Shutdown listen socket without clearing listen queue.

13. listen() fails with EPROTO on Solaris 2.6, not on 2.4