| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | 
 |     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | 
 |  | 
 | <html xmlns="http://www.w3.org/1999/xhtml"> | 
 |   <head> | 
 |     <meta name="generator" content="HTML Tidy, see www.w3.org" /> | 
 |  | 
 |     <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 id="initial" name="initial"> </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 <<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> | 
 |  | 
 |     <p>For HP-UX 10.20:</p> | 
 |  | 
 |     <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. | 
 |     Notice that it's critically important that you use "W" to write | 
 |     a 32 bit quantity, not "w" to write a 16 bit value when | 
 |     patching the disc image because the tcp_hash_size variable is a | 
 |     32 bit quantity.</p> | 
 |  | 
 |     <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> | 
 |  | 
 |     <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> | 
 |  | 
 |     <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 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> | 
 |  | 
 |     <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> | 
 |  | 
 |     <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> | 
 |  | 
 |     <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> | 
 |  | 
 |     <p>sincerely,</p> | 
 |  | 
 |     <p>rick jones<br /> | 
 |      <a | 
 |     href="http://www.cup.hp.com/netperf/NetperfPage.html">http://www.cup.hp.com/netperf/NetperfPage.html</a> | 
 |     <!--#include virtual="footer.html" --> | 
 |     </p> | 
 |   </body> | 
 | </html> | 
 |  |