<!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">&nbsp;</A>
<!--#include virtual="header.html" -->

<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 &lt;BINARY&gt;." The GID of the running executable
must have MLOCK privileges. 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>

