<!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 &lt;<A HREF="mailto:raj@cup.hp.com">raj@cup.hp.com</A>&gt;
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>

