| <?xml version="1.0" encoding="UTF-8" ?> |
| <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd"> |
| <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?> |
| <!-- $Revision: 1.7 $ --> |
| |
| <!-- |
| Copyright 2002-2004 The Apache Software Foundation |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <manualpage metafile="perf-hp.xml.meta"> |
| <parentdocument href="./">Platform Specific Notes</parentdocument> |
| |
| <title>Running a High-Performance Web Server on HPUX</title> |
| |
| <summary> |
| |
| <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: <a href="mailto:raj@cup.hp.com" |
| >raj@cup.hp.com</a> |
| Organization: Network Performance |
| Subject: HP-UX tuning tips |
| </pre> |
| |
| <p>Here are some tuning tips for HP-UX to add to the tuning page.</p> |
| |
| <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 <code>tcp_hash_size</code>. |
| Notice that it's critically important that you use "<code>W</code>" |
| to write a 32 bit quantity, not "<code>w</code>" to write a 16 bit |
| value when patching the disc image because the <code>tcp_hash_size</code> |
| 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 <code>TIME_WAIT</code> 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 "<code>chatr +pi L <BINARY></code>". |
| The GID of the running executable must have <code>MLOCK</code> privileges. |
| <code>Setprivgrp(1m)</code> should be consulted for assigning |
| <code>MLOCK</code>. 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 <code>mpctl()</code> |
| to bind processes to processors. A simple <code>pid % numcpu</code> |
| algorithm is probably sufficient. This might even go into the |
| source code.</p> |
| |
| <p>If folks are concerned about the number of <code>FIN_WAIT_2</code> |
| connections, they can use nettune to shrink the value of |
| <code>tcp_keepstart</code>. However, they should be careful there - |
| certainly do not make it less than oh two to four minutes. If |
| <code>tcp_hash_size</code> has been set well, it is probably OK to |
| let the <code>FIN_WAIT_2</code>'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</p> |
| |
| <p><a href="http://www.cup.hp.com/netperf/NetperfPage.html" |
| >http://www.cup.hp.com/netperf/NetperfPage.html</a></p> |
| |
| </summary> |
| |
| </manualpage> |
| |
| |