--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<title>Running a High-Performance Web Server on HPUX</title>
+</head>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<A NAME="initial">
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.3
+ </H3>
+</DIV>
+
+</A>
+<H1 ALIGN="CENTER">Running a High-Performance Web Server for HPUX</H1>
+
+<PRE>
+Date: Wed, 05 Nov 1997 16:59:34 -0800
+From: Rick Jones <<A HREF="mailto:raj@cup.hp.com">raj@cup.hp.com</A>>
+Reply-To: raj@cup.hp.com
+Organization: Network Performance
+Subject: HP-UX tuning tips
+</PRE>
+
+Here are some tuning tips for HP-UX to add to the tuning page.
+
+<P>
+
+For HP-UX 9.X: Upgrade to 10.20<BR>
+For HP-UX 10.[00|01|10]: Upgrade to 10.20
+
+<P>
+
+For HP-UX 10.20:
+
+<P>
+
+Install the latest cumulative ARPA Transport Patch. This will allow you
+to configure the size of the TCP connection lookup hash table. The
+default is 256 buckets and must be set to a power of two. This is
+accomplished with adb against the *disc* image of the kernel. The
+variable name is tcp_hash_size.
+
+<P>
+
+How to pick the value? Examine the output of
+<A HREF="ftp://ftp.cup.hp.com/dist/networking/tools/connhist">
+ftp://ftp.cup.hp.com/dist/networking/tools/connhist</A> and see how many
+total TCP connections exist on the system. You probably want that number
+divided by the hash table size to be reasonably small, say less than 10.
+Folks can look at HP's SPECweb96 disclosures for some common settings.
+These can be found at <A HREF="http://www.specbench.org/">
+http://www.specbench.org/</A>. If an HP-UX system was
+performing at 1000 SPECweb96 connections per second, the TIME_WAIT time
+of 60 seconds would mean 60,000 TCP "connections" being tracked.
+
+<P>
+
+Folks can check their listen queue depths with
+<A HREF="ftp://ftp.cup.hp.com/dist/networking/misc/listenq">
+ftp://ftp.cup.hp.com/dist/networking/misc/listenq</A>.
+
+<P>
+
+If folks are running Apache on a PA-8000 based system, they should
+consider "chatr'ing" the Apache executable to have a large page size.
+This would be "chatr +pi L <binary>." The GID of the running executable
+must have MLOCK priviledges. Setprivgrp(1m) should be consulted for
+assigning MLOCK. The change can be validated by running Glance and
+examining the memory regions of the server(s) to make sure that they
+show a non-trivial fraction of the text segment being locked.
+
+<P>
+
+If folks are running Apache on MP systems, they might consider writing a
+small program that uses mpctl() to bind processes to processors. A
+simple pid % numcpu algorithm is probably sufficient. This might even go
+into the source code.
+
+<P>
+
+If folks are concerned about the number of FIN_WAIT_2 connections, they
+can use nettune to shrink the value of tcp_keepstart. However, they
+should be careful there - certainly do not make it less than oh two to
+four minutes. If tcp_hash_size has been set well, it is probably OK to
+let the FIN_WAIT_2's take longer to timeout (perhaps even the default
+two hours) - they will not on average have a big impact on performance.
+
+<P>
+
+There are other things that could go into the code base, but that might
+be left for another email. Feel free to drop me a message if you or
+others are interested.
+
+<P>
+
+sincerely,
+
+<P>
+
+rick jones<BR>
+<A HREF="http://www.cup.hp.com/netperf/NetperfPage.html">
+http://www.cup.hp.com/netperf/NetperfPage.html</A>
+
+<HR>
+
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.3
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</body></html>
+