Powered by Apache


Apache on A/UX Performance Hints


This page describes some simple performance hints and boosts for running Apache under A/UX. The semi-official A/UX WebSite can be found on jagubox

A/UX is an excellent platform for Apache. For optimal performance, it's best to be running A/UX 3.1.1 on a good, fast Mac. Even so, there are some basic performance improvements you can make to allow Apache to really shine.

Note: These patches are in gzipped-tar format... If downloading from the Web doesn't work, you can try FTP to either:


Virtual Interfaces
Apache has the capability to handle Virtual Web Servers. This is a technique were one machine can respond to many different IP addresses and Apache can display different pages depending on those addresses

(In other words, you can setup Apache on one machine to respond to both www.bigtime.com and www.lookieme.com with different default homepages for both)

You can use name-based vhosts with no changes at all to A/UX. This isn't the case for ip-based vhosts. A/UX doesn't provide the internal virtual interfaces capability required to get ip-based vhosts to work (some OSs, like Solaris or HP-UX can do this "as is"). Jim Jagielski (jim@jaguNET.com) has written an A/UX kernel module that gives A/UX the virtual interfaces required. The module is added to the kernel using the standard kconfig command and you can add as many virtual interfaces as you need.

Download the vif-module

listen() queue backlog (SOMAXCONN)
As mentioned on the previous Apache page, the size of the listen() backlog queue can be the first-hit limit for many servers. Some OSs allow for quick and easy adjustment of the size of the queue (defined as SOMAXCONN), but not A/UX. It's hard-wired into the kernel's bnet kernel module.

To get around this, Jim has also written a short adb script that changes this hard-wired value from 5 to a more-reasonable value of 32 or 64 or 127 (larger values aren't possible yet).

Download the adb-script

If you don't want to bother with downloading the script, here it is:

    #!/bin/ksh
    #
    # this patches the BNET module to increase the value of SOMAXCONN
    # (the maximum number for the backlog queue in listen()) from 5 to 32
    # or 64 or 127
    #
    #
    # Uncomment the size you want
    #
    #QUEUE=20	# 32
    #QUEUE=40	# 64
    QUEUE=7f	# 127

    adb -w bnet <<!
    solisten+0x7a?6i
    solisten+0x7e?x
    solisten+0x7e?w $QUEUE
    solisten+0x8a?x
    solisten+0x8a?w 70$QUEUE
    solisten+0x7a?6i
    $q
    !
NMBUFS kernel parameter
Finally, use kconfig to increase the number of mbufs allocated in the kernel; 5000 is a good value:
         % kconfig -n /unix
         NMBUFS=5000
         ^D

The change will take effect the next time A/UX is rebooted.

Limit on the number of open files per process
A/UX 3.1(.x) is limited to 128 open files per process. This means that A/UX cannot handle more than somewhere around 50-60 virtual hosts per server if each host it's own access and error-log and around 100 if they all use a common error-log.

We're looking into ways around this, but until then, keep this limit in mind.


General Apache on A/UX Notes


© 1994-2011copy; 1994-2011, jaguNET Access Services, LLC
webmaster@jaguNET.com


Powered by Apache