Recommended Solaris patches for use with MDMA (plus tip for NCSA)

Simon E Spero (ses@tipper.oit.unc.edu)
Thu, 07 Jul 94 18:10:44 -0400


I forgot to mention several patches for Solaris that should be used if you
want to run MDMA;

101318-45: The Jumbo Kernel patch. This should be on every 2.3 box.

101316-01: Sockets and signals patch.

101489-04: Threads patch.

Also, Solaris has problems accepting lots of simultaneous connections. You can
alleviate the problem somewhat by increasing the size of the maximum connection
queue by using the following command:
# ndd -set /dev/tcp tcp_conn_req_max 32

When you write code that calls listen, you should always give it a big
queue size; it'll be cut down to the value of tcp_conn_req_max. Solaris 2.4
is reputed to have a much better implementation of TCP; I'm going to be
visiting with Sun in a few days, and I'll try and see if it makes a big
difference.

NCSA httpd currently ships with listen's queue length set to 5, which is a
number that works properly on just about anything but Solaris. If people
are having trouble with connection times to your solaris server, bump up
this value in the source and recompile, and you'll get much better performance.

Another problem that Solaris has is with the period of time it leaves closed
connections in the TIME_WAIT state; Solaris uses the reccommended value of
4 minutes; this can result in thousands of tcbs hanging around tieing up memory.
Unless you're regularly serving files to sites out beyond lunar orbit, dropping
this value to about 30 seconds (as it was in 4.1.3) should be safe.
If you do have people sending HTTP requests from that area, then somebody at
NASA has way too much spare time on their hands.

To change this paramter to a more sensible setting, use the following command.

# ndd -set /dev/tcp tcp_close_wait_interval 30000

This will also help ftp, gopher and any other one-shot protocols.

Enjoy

Simon